Commit 88be157
Changed files (2)
lib
model
test
model
lib/model/settings_store.dart
@@ -8,14 +8,15 @@ import 'package:shared_preferences/shared_preferences.dart';
class Settings extends ChangeNotifier {
late final SharedPreferences _prefs;
+ final PackageInfo _packageInfo;
DateTime? _displayDataStart;
DateTime? _displayDataEnd;
- Settings._create();
+ Settings._create(this._packageInfo);
// factory method, to allow for async constructor
- static Future<Settings> create() async {
- final component = Settings._create();
+ static Future<Settings> create([PackageInfo? packageInfo]) async {
+ final component = Settings._create(packageInfo ?? (await PackageInfo.fromPlatform()));
component._prefs = await SharedPreferences.getInstance();
await component._update();
return component;
@@ -61,7 +62,7 @@ class Settings extends ChangeNotifier {
for (var e in toAwait) {
await e;
}
- await _prefs.setInt('lastAppVersion', int.parse((await PackageInfo.fromPlatform()).buildNumber));
+ await _prefs.setInt('lastAppVersion', int.parse(_packageInfo.buildNumber));
return;
}
test/model/settings_test.dart
@@ -4,12 +4,14 @@ import 'package:blood_pressure_app/model/ram_only_implementations.dart';
import 'package:blood_pressure_app/model/settings_store.dart';
import 'package:file_saver/file_saver.dart';
import 'package:flutter_test/flutter_test.dart';
+import 'package:package_info_plus/package_info_plus.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
SharedPreferences.setMockInitialValues({});
+ final testPackageInfo = PackageInfo(appName: 'blood_pressure_app', packageName: 'com.derdilla.bloodPressureApp', version: 'UnitTests', buildNumber: '999999');
group('Settings model', () {
// setup db path
@@ -17,12 +19,12 @@ void main() {
test('should initialize', () async {
expect(() async {
- await Settings.create();
+ await Settings.create(testPackageInfo);
}, returnsNormally);
});
test('fields defaults should be set after initialization', () async {
- var s = await Settings.create();
+ var s = await Settings.create(testPackageInfo);
expect(s.graphStepSize, TimeStep.day);
expect(s.followSystemDarkMode, true);
expect(s.darkMode, true);
@@ -52,7 +54,7 @@ void main() {
});
test('setting fields should save changes', () async {
- var s = await Settings.create();
+ var s = await Settings.create(testPackageInfo);
int i = 0;
s.addListener(() {
@@ -123,7 +125,7 @@ void main() {
});
test('setting fields should notify listeners and change values', () async {
- var s = await Settings.create();
+ var s = await Settings.create(testPackageInfo);
int i = 0;
s.addListener(() {