package reconcile import ( "testing" "time" ) func TestParseSpec(t *testing.T) { cases := []struct { in string want time.Duration wantErr bool }{ {"@every 30s", 30 * time.Second, false}, {"@every 2m", 2 * time.Minute, false}, {"5m", 5 * time.Minute, false}, {"1h30m", 90 * time.Minute, false}, {"", 0, true}, {"@every", 0, true}, {"@every 0s", 0, true}, {"-1m", 0, true}, {"* * * * *", 0, true}, } for _, c := range cases { got, err := ParseSpec(c.in) if c.wantErr { if err == nil { t.Errorf("ParseSpec(%q) err=nil; want error", c.in) } continue } if err != nil { t.Errorf("ParseSpec(%q) err=%v; want nil", c.in, err) continue } if got != c.want { t.Errorf("ParseSpec(%q) = %v; want %v", c.in, got, c.want) } } }