feat(proj): init

This commit is contained in:
vl.arkhangelskii
2026-09-21 04:06:43 +03:00
commit c956b94983
1076 changed files with 50876 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:please_pay_me/theme/theme.dart';
void main() {
group('ThemePreference', () {
test('parse falls back to system', () {
expect(ThemePreference.parse(null), ThemePreference.system);
expect(ThemePreference.parse('nope'), ThemePreference.system);
expect(ThemePreference.parse('light'), ThemePreference.light);
expect(ThemePreference.parse('dark'), ThemePreference.dark);
});
test('resolve follows the platform only in system mode', () {
expect(ThemePreference.system.resolve(Brightness.dark), Brightness.dark);
expect(ThemePreference.light.resolve(Brightness.dark), Brightness.light);
expect(ThemePreference.dark.resolve(Brightness.light), Brightness.dark);
});
});
group('systemUiOverlayFor', () {
test('dark paints the Android nav bar transparent black without a scrim', () {
final overlay = systemUiOverlayFor(Brightness.dark);
expect(overlay.systemNavigationBarColor, const Color(0x00000000));
expect(overlay.systemNavigationBarContrastEnforced, isFalse);
expect(overlay.systemNavigationBarIconBrightness, Brightness.light);
});
});
group('ThemeController', () {
test('restore and setPreference persist independently of session', () async {
final store = MemoryThemeStore('dark');
final controller = ThemeController(store: store);
await controller.restore();
expect(controller.preference, ThemePreference.dark);
await controller.setPreference(ThemePreference.light);
expect(controller.preference, ThemePreference.light);
expect(store.value, 'light');
expect(controller.resolve(Brightness.dark), Brightness.light);
});
});
}