import 'package:block_seasons/data/save_repository.dart'; import 'package:block_seasons/game/models/booster.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() { TestWidgetsFlutterBinding.ensureInitialized(); Future container(DateTime today) async { SharedPreferences.setMockInitialValues({}); final repo = SaveRepository(await SharedPreferences.getInstance()); return ProviderContainer(overrides: [ saveRepositoryProvider.overrideWithValue(repo), dailyNowProvider.overrideWithValue(() => today), ]); } test('first day is claimable as day 1 and claim grants the reward', () async { final c = await container(DateTime(2026, 6, 18)); expect(c.read(dailyRewardProvider).claimable, isTrue); expect(c.read(dailyRewardProvider).day, 1); await c.read(dailyRewardProvider.notifier).claim(); expect(c.read(boosterInventoryProvider)[BoosterType.hammer], 1); // day 1 expect(c.read(dailyRewardProvider).claimable, isFalse); }); test('doubled claim grants twice the reward', () async { final c = await container(DateTime(2026, 6, 18)); await c.read(dailyRewardProvider.notifier).claim(doubled: true); expect(c.read(boosterInventoryProvider)[BoosterType.hammer], 2); }); }