607278928b
Pure advanceStreak (1-day grace none, milestone flags at 3/7/14/30), persisted in the save blob; StreakNotifier advances on every finished attempt; home screen flame chip and milestone snackbar. Fix flutter create's camelCased iOS bundle id and underscored Android application id to the agreed lowercase form before any store registration. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
25 lines
850 B
Dart
25 lines
850 B
Dart
import 'package:block_seasons/app.dart';
|
|
import 'package:block_seasons/data/save_repository.dart';
|
|
import 'package:block_seasons/state/providers.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
void main() {
|
|
testWidgets('home screen shows title and play button', (tester) async {
|
|
SharedPreferences.setMockInitialValues({});
|
|
final repo = SaveRepository(await SharedPreferences.getInstance());
|
|
|
|
await tester.pumpWidget(
|
|
ProviderScope(
|
|
overrides: [saveRepositoryProvider.overrideWithValue(repo)],
|
|
child: const BlockSeasonsApp(),
|
|
),
|
|
);
|
|
await tester.pumpAndSettle();
|
|
|
|
expect(find.text('Block Seasons'), findsOneWidget);
|
|
expect(find.text('Play'), findsOneWidget);
|
|
});
|
|
}
|