import 'package:flutter_test/flutter_test.dart'; import 'package:marianum_mobile/background/widget_background_task.dart'; void main() { final now = DateTime(2026, 8, 6, 12, 0); group('shouldSkipRefresh', () { test('skips when the snapshot is younger than the debounce window', () { expect( shouldSkipRefresh( fetchedAt: now.subtract(const Duration(minutes: 5)), now: now, force: false, ), isTrue, ); }); test('refreshes when the snapshot is older than the debounce window', () { expect( shouldSkipRefresh( fetchedAt: now.subtract(const Duration(minutes: 15)), now: now, force: false, ), isFalse, ); }); test('refreshes exactly at the debounce boundary', () { expect( shouldSkipRefresh( fetchedAt: now.subtract(WidgetBackgroundTask.refreshDebounce), now: now, force: false, ), isFalse, ); }); test('force bypasses a fresh snapshot', () { expect( shouldSkipRefresh( fetchedAt: now.subtract(const Duration(minutes: 1)), now: now, force: true, ), isFalse, ); }); test('refreshes when no snapshot exists yet', () { expect(shouldSkipRefresh(fetchedAt: null, now: now, force: false), isFalse); }); test('refreshes when fetchedAt lies in the future (clock change)', () { expect( shouldSkipRefresh( fetchedAt: now.add(const Duration(minutes: 5)), now: now, force: false, ), isFalse, ); }); }); }