import 'package:flutter_test/flutter_test.dart';
import 'package:okane/database/collections/recurrent.dart';

void main() {
  group("isDue", () {
    test("null value", () {
      final t = RecurringTransaction()..lastExecution = null;
      expect(t.isDue(DateTime.now()), true);
    });

    test("Date before", () {
      final now = DateTime.now();
      final t =
          RecurringTransaction()
            ..lastExecution = now
            ..days = 30;
      expect(t.isDue(now.add(Duration(days: 10))), false);
    });

    test("Date before warning", () {
      final now = DateTime.now();
      final t =
          RecurringTransaction()
            ..lastExecution = now
            ..days = 30;
      expect(t.isDue(now.add(Duration(days: 20))), true);
    });

    test("Expired", () {
      final now = DateTime.now();
      final t =
          RecurringTransaction()
            ..lastExecution = now
            ..days = 30;
      expect(t.isDue(now.add(Duration(days: 31))), true);
    });
  });
}