2026-09-26 22:45:38 +03:00
|
|
|
import "dart:io";
|
2024-02-17 20:32:01 +05:30
|
|
|
|
2026-09-26 22:45:38 +03:00
|
|
|
import "package:flutter_riverpod/flutter_riverpod.dart";
|
|
|
|
|
import "package:flutter_test/flutter_test.dart";
|
|
|
|
|
import "package:hive_flutter/hive_flutter.dart";
|
2024-02-17 20:32:01 +05:30
|
|
|
|
2026-09-26 22:45:38 +03:00
|
|
|
import "package:smol_mail/data/providers/providers.dart";
|
|
|
|
|
import "package:smol_mail/presentation/app_widget.dart";
|
|
|
|
|
import "package:smol_mail/smol/store.dart";
|
2024-02-17 20:32:01 +05:30
|
|
|
|
2026-09-26 22:45:38 +03:00
|
|
|
late final SmolStore store;
|
2024-02-17 20:32:01 +05:30
|
|
|
|
2026-09-26 22:45:38 +03:00
|
|
|
void main() {
|
|
|
|
|
// Hive's box opening is real file IO, which never completes inside a
|
|
|
|
|
// testWidgets fake-async zone — so it happens here, outside one.
|
|
|
|
|
setUpAll(() async {
|
|
|
|
|
TestWidgetsFlutterBinding.ensureInitialized();
|
|
|
|
|
final dir = await Directory.systemTemp.createTemp("smol-widget-test");
|
|
|
|
|
Hive.init(dir.path);
|
2026-09-28 23:49:39 +03:00
|
|
|
store = await SmolStore.open(dbPath: "${dir.path}/widget.db");
|
2026-09-26 22:45:38 +03:00
|
|
|
});
|
2024-02-17 20:32:01 +05:30
|
|
|
|
2026-09-26 22:45:38 +03:00
|
|
|
testWidgets("onboarding invites to create or restore an identity",
|
|
|
|
|
(tester) async {
|
|
|
|
|
await tester.pumpWidget(
|
|
|
|
|
ProviderScope(
|
|
|
|
|
overrides: [storeProvider.overrideWithValue(store)],
|
|
|
|
|
child: const AppWidget(),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
await tester.pumpAndSettle();
|
|
|
|
|
expect(find.text("Create Identity"), findsOneWidget);
|
|
|
|
|
expect(find.text("Restore From Seed"), findsOneWidget);
|
2024-02-17 20:32:01 +05:30
|
|
|
});
|
|
|
|
|
}
|