sign in with pocketbase working

This commit is contained in:
davmar
2026-09-09 19:59:38 +02:00
parent ae464ff304
commit c6d1fdb19e
27 changed files with 1267 additions and 312 deletions
+83
View File
@@ -0,0 +1,83 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
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/theme_provider.dart';
import 'package:myapp/providers/tx_meta_provider.dart';
import 'package:myapp/screens/overview_screen.dart';
import 'package:myapp/screens/transactions_screen.dart';
import 'package:myapp/services/storage_service.dart';
import 'package:myapp/utils/app_config.dart';
import 'package:myapp/utils/app_theme.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
late StorageService storage;
late AuthController auth;
late BankController bank;
late TxMetaController meta;
setUp(() async {
AppConfig.loadForTest();
SharedPreferences.setMockInitialValues({});
storage = StorageService();
await storage.init();
auth = AuthController(storage);
await auth.init();
bank = BankController(storage: storage);
// seed a couple txs
// ignore: invalid_use_of_visible_for_testing_member
meta = TxMetaController(storage);
});
testWidgets('overview builds dark', (tester) async {
FlutterError.onError = (details) {
fail(details.toString());
};
await tester.pumpWidget(
MultiProvider(
providers: [
ChangeNotifierProvider<AuthController>.value(value: auth),
ChangeNotifierProvider(create: (_) => ThemeController(storage)),
ChangeNotifierProvider<TxMetaController>.value(value: meta),
ChangeNotifierProvider<BankController>.value(value: bank),
],
child: MaterialApp(
theme: AppTheme.light(),
darkTheme: AppTheme.dark(),
themeMode: ThemeMode.dark,
home: const OverviewScreen(),
),
),
);
await tester.pump();
await tester.pump(const Duration(seconds: 1));
expect(tester.takeException(), isNull);
expect(find.text('Overview'), findsOneWidget);
});
testWidgets('transactions builds dark', (tester) async {
await tester.pumpWidget(
MultiProvider(
providers: [
ChangeNotifierProvider<AuthController>.value(value: auth),
ChangeNotifierProvider(create: (_) => ThemeController(storage)),
ChangeNotifierProvider<TxMetaController>.value(value: meta),
ChangeNotifierProvider<BankController>.value(value: bank),
],
child: MaterialApp(
theme: AppTheme.light(),
darkTheme: AppTheme.dark(),
themeMode: ThemeMode.dark,
home: const TransactionsScreen(),
),
),
);
await tester.pump();
await tester.pump(const Duration(seconds: 1));
expect(tester.takeException(), isNull);
});
}