tasq/test/auto_assign_test.dart

46 lines
1.2 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:tasq/providers/tasks_provider.dart';
void main() {
test(
'chooseAutoAssignCandidate picks latest check-in (late-comer priority)',
() {
final now = DateTime(2026, 2, 18, 12, 0, 0);
final earlier = AutoAssignCandidate(
userId: 'user-1',
checkInAt: now.subtract(const Duration(hours: 2)),
completedToday: 0,
);
final later = AutoAssignCandidate(
userId: 'user-2',
checkInAt: now.subtract(const Duration(hours: 1)),
completedToday: 0,
);
final chosen = chooseAutoAssignCandidate([earlier, later]);
expect(chosen, equals('user-2'));
},
);
test('chooseAutoAssignCandidate uses completed count as tie-breaker', () {
final now = DateTime(2026, 2, 18, 9, 0, 0);
final a = AutoAssignCandidate(
userId: 'a',
checkInAt: now,
completedToday: 5,
);
final b = AutoAssignCandidate(
userId: 'b',
checkInAt: now,
completedToday: 2,
);
final chosen = chooseAutoAssignCandidate([a, b]);
expect(chosen, equals('b'));
});
test('chooseAutoAssignCandidate returns null for empty list', () {
expect(chooseAutoAssignCandidate([]), isNull);
});
}