Commit 049284c

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-10-11 17:17:37
remove ffi dependency from production
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 633279e
lib/model/blood_pressure.dart
@@ -5,7 +5,7 @@ import 'package:blood_pressure_app/screens/error_reporting.dart';
 import 'package:collection/collection.dart';
 import 'package:flutter/material.dart';
 import 'package:path/path.dart';
-import 'package:sqflite_common_ffi/sqflite_ffi.dart';
+import 'package:sqflite/sqflite.dart';
 
 class BloodPressureModel extends ChangeNotifier {
   static const maxEntries = 2E64; // https://www.sqlite.org/limits.html Nr.13
test/model/bood_pressure_test.dart
@@ -1,6 +1,7 @@
 import 'package:blood_pressure_app/model/blood_pressure.dart';
 import 'package:blood_pressure_app/model/ram_only_implementations.dart';
 import 'package:flutter_test/flutter_test.dart';
+import 'package:path/path.dart';
 import 'package:sqflite_common_ffi/sqflite_ffi.dart';
 
 void main() {
@@ -22,22 +23,24 @@ void main() {
   });
 
   group('BloodPressureModel', () {
-    // setup db path
-    databaseFactory = databaseFactoryFfi;
+    setUpAll(() {
+      sqfliteFfiInit();
+      databaseFactory = databaseFactoryFfi;
+    });
 
     test('should initialize', () async {
       expect(() async {
-        await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_init');
+        await BloodPressureModel.create(dbPath: join(inMemoryDatabasePath, 'BPMShouldInit.db'));
       }, returnsNormally);
     });
     test('should start empty', () async {
-      var m = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_start_empty');
+      var m = await BloodPressureModel.create(dbPath: join(inMemoryDatabasePath, 'BPMShouldStartEmpty.db'));
 
       expect((await m.getInTimeRange(DateTime.fromMillisecondsSinceEpoch(1), DateTime.now())).length, 0);
     });
 
     test('should notify when adding entries', () async {
-      var m = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_notify_when_add');
+      var m = await BloodPressureModel.create(dbPath: join(inMemoryDatabasePath, 'BPMShouldNotifyWhenAdding.db'));
 
       int listenerCalls = 0;
       m.addListener(() {
@@ -52,7 +55,7 @@ void main() {
     });
 
     test('should return entries as added', () async {
-      var m = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_return_as_added');
+      var m = await BloodPressureModel.create(dbPath: join(inMemoryDatabasePath, 'BPMShouldReturnAddedEntries.db'));
 
       var r = BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(31415926), -172, 10000, 0,
           "((V⍳V)=⍳⍴V)/V←,V    ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈๏ แผ่นดินฮั่นเABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвг, \n \t д∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა");
@@ -71,12 +74,12 @@ void main() {
     });
 
     test('should save and load between objects/sessions', () async {
-      var m = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_store_between_sessions');
+      var m = await BloodPressureModel.create(dbPath: join(inMemoryDatabasePath, 'BPMShouldPersist.db'));
       var r = BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(31415926), -172, 10000, 0,
           "((V⍳V)=⍳⍴V)/V←,V    ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈๏ แผ่นดินฮั่นเABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ–—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвг, \n \t д∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა");
       await m.add(r);
 
-      var m2 = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_store_between_sessions');
+      var m2 = await BloodPressureModel.create(dbPath: join(inMemoryDatabasePath, 'BPMShouldPersist.db'));
       var res = (await m2.getInTimeRange(DateTime.fromMillisecondsSinceEpoch(1), DateTime.now())).first;
 
       expect(res.creationTime, r.creationTime);
@@ -87,7 +90,7 @@ void main() {
     });
 
     test('should delete', () async {
-      var m = await BloodPressureModel.create(dbPath: '/tmp/bp_test/should_delete');
+      var m = await BloodPressureModel.create(dbPath: join(inMemoryDatabasePath, 'BPMShouldDelete.db'));
 
       await m.add(BloodPressureRecord(DateTime.fromMillisecondsSinceEpoch(758934), 123, 87, 65, ';)'));
       expect((await m.getInTimeRange(DateTime.fromMillisecondsSinceEpoch(1), DateTime.now())).length, 1);
pubspec.lock
@@ -683,7 +683,7 @@ packages:
     source: hosted
     version: "2.5.0"
   sqflite_common_ffi:
-    dependency: "direct main"
+    dependency: "direct dev"
     description:
       name: sqflite_common_ffi
       sha256: "0d5cc1be2eb18400ac6701c31211d44164393aa75886093002ecdd947be04f93"
pubspec.yaml
@@ -33,7 +33,6 @@ dependencies:
   badges: ^3.1.1
   flutter_markdown: ^0.6.17
   collection: ^1.17.1
-  sqflite_common_ffi: ^2.3.0
   restart_app: ^1.2.1
 
 dev_dependencies:
@@ -42,6 +41,7 @@ dev_dependencies:
   file: any
   flutter_lints: ^2.0.0
   mockito: ^5.4.1
+  sqflite_common_ffi: ^2.3.0
 
 flutter:
   uses-material-design: true