sync transactions with pocketbase

This commit is contained in:
davmar
2026-09-09 22:24:16 +02:00
parent c6d1fdb19e
commit 96627a830e
9 changed files with 1104 additions and 324 deletions
+18 -18
View File
@@ -5,6 +5,7 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:myapp/models/bank.dart';
import 'package:myapp/providers/auth_provider.dart';
import 'package:myapp/providers/bank_provider.dart';
import 'package:myapp/providers/sync_provider.dart';
import 'package:myapp/providers/theme_provider.dart';
import 'package:myapp/providers/tx_meta_provider.dart';
import 'package:myapp/screens/main_shell.dart';
@@ -27,6 +28,7 @@ void main() {
late StorageService storage;
late AuthController auth;
late SyncController sync;
late BankController bank;
late TxMetaController meta;
@@ -39,8 +41,21 @@ void main() {
await auth.init();
bank = BankController(storage: storage);
meta = TxMetaController(storage);
sync = SyncController(auth: auth, meta: meta);
});
tearDown(() {
sync.dispose();
});
List<ChangeNotifierProvider> appProviders() => [
ChangeNotifierProvider<AuthController>.value(value: auth),
ChangeNotifierProvider<SyncController>.value(value: sync),
ChangeNotifierProvider(create: (_) => ThemeController(storage)),
ChangeNotifierProvider<TxMetaController>.value(value: meta),
ChangeNotifierProvider<BankController>.value(value: bank),
];
testWidgets('main shell + detail + filter', (tester) async {
FlutterError.onError = (d) => fail('${d.exceptionAsString()}\n${d.stack}');
@@ -63,12 +78,7 @@ void main() {
await tester.pumpWidget(
MultiProvider(
providers: [
ChangeNotifierProvider<AuthController>.value(value: auth),
ChangeNotifierProvider(create: (_) => ThemeController(storage)),
ChangeNotifierProvider<TxMetaController>.value(value: meta),
ChangeNotifierProvider<BankController>.value(value: bank),
],
providers: appProviders(),
child: MaterialApp(
theme: AppTheme.light(),
darkTheme: AppTheme.dark(),
@@ -83,12 +93,7 @@ void main() {
// Open filter via transactions - go to a route
await tester.pumpWidget(
MultiProvider(
providers: [
ChangeNotifierProvider<AuthController>.value(value: auth),
ChangeNotifierProvider(create: (_) => ThemeController(storage)),
ChangeNotifierProvider<TxMetaController>.value(value: meta),
ChangeNotifierProvider<BankController>.value(value: bank),
],
providers: appProviders(),
child: MaterialApp(
theme: AppTheme.light(),
darkTheme: AppTheme.dark(),
@@ -126,12 +131,7 @@ void main() {
await meta.setInternalTransfer(sample, true);
await tester.pumpWidget(
MultiProvider(
providers: [
ChangeNotifierProvider<AuthController>.value(value: auth),
ChangeNotifierProvider(create: (_) => ThemeController(storage)),
ChangeNotifierProvider<TxMetaController>.value(value: meta),
ChangeNotifierProvider<BankController>.value(value: bank),
],
providers: appProviders(),
child: MaterialApp(
theme: AppTheme.light(),
darkTheme: AppTheme.dark(),
+9
View File
@@ -4,6 +4,7 @@ import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:myapp/providers/auth_provider.dart';
import 'package:myapp/providers/bank_provider.dart';
import 'package:myapp/providers/sync_provider.dart';
import 'package:myapp/providers/theme_provider.dart';
import 'package:myapp/providers/tx_meta_provider.dart';
import 'package:myapp/screens/overview_screen.dart';
@@ -17,6 +18,7 @@ void main() {
late StorageService storage;
late AuthController auth;
late SyncController sync;
late BankController bank;
late TxMetaController meta;
@@ -31,6 +33,11 @@ void main() {
// seed a couple txs
// ignore: invalid_use_of_visible_for_testing_member
meta = TxMetaController(storage);
sync = SyncController(auth: auth, meta: meta);
});
tearDown(() {
sync.dispose();
});
testWidgets('overview builds dark', (tester) async {
@@ -41,6 +48,7 @@ void main() {
MultiProvider(
providers: [
ChangeNotifierProvider<AuthController>.value(value: auth),
ChangeNotifierProvider<SyncController>.value(value: sync),
ChangeNotifierProvider(create: (_) => ThemeController(storage)),
ChangeNotifierProvider<TxMetaController>.value(value: meta),
ChangeNotifierProvider<BankController>.value(value: bank),
@@ -64,6 +72,7 @@ void main() {
MultiProvider(
providers: [
ChangeNotifierProvider<AuthController>.value(value: auth),
ChangeNotifierProvider<SyncController>.value(value: sync),
ChangeNotifierProvider(create: (_) => ThemeController(storage)),
ChangeNotifierProvider<TxMetaController>.value(value: meta),
ChangeNotifierProvider<BankController>.value(value: bank),