package reposync

import (
	"testing"
	"time"
)

func TestCronScheduleNext(t *testing.T) {
	schedule, err := ParseCron("*/15 2 * * 1-5")
	if err != nil {
		t.Fatal(err)
	}
	after := time.Date(2026, time.August, 21, 2, 7, 49, 0, time.UTC) // Friday
	next, err := schedule.Next(after)
	if err != nil {
		t.Fatal(err)
	}
	want := time.Date(2026, time.August, 21, 2, 15, 0, 0, time.UTC)
	if !next.Equal(want) {
		t.Fatalf("next = %s, want %s", next, want)
	}
}

func TestCronScheduleRejectsInvalidFields(t *testing.T) {
	for _, expression := range []string{"* * * *", "61 * * * *", "*/0 * * * *", "* * 0 * *"} {
		if _, err := ParseCron(expression); err == nil {
			t.Fatalf("ParseCron(%q) unexpectedly succeeded", expression)
		}
	}
}
