Files
Client/test/background/widget_background_task_test.dart
T
2026-08-06 20:22:32 +02:00

68 lines
1.6 KiB
Dart

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,
);
});
});
}