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