Skip to content

Commit

Permalink
fix: add settings lost in GetScheduledSettingsRaw
Browse files Browse the repository at this point in the history
  • Loading branch information
ChanceLi committed Aug 16, 2024
1 parent 26d89e3 commit e4a6912
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 0 deletions.
1 change: 1 addition & 0 deletions core/scheduling/settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ func GetScheduledSettingsRaw(when time.Time, settings wingv1.TargetSettings) (pa
}

if scheduler.Contains(when) {
hitScheduleSettingsPayload = make([]byte, len(schedule.Settings.Raw))
copy(hitScheduleSettingsPayload, schedule.Settings.Raw)
break
}
Expand Down
54 changes: 54 additions & 0 deletions core/scheduling/settings_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"k8s.io/apimachinery/pkg/runtime"
)

func isSchedulePeriodContains(when time.Time, scheduleSettings wingv1.ScheduleTargetSettings) (bool, error) {
Expand Down Expand Up @@ -272,3 +273,56 @@ func BenchmarkIsSchedulePeriodContainsWithDate(b *testing.B) {
})
}
}

func TestGetScheduledSettingsRaw(t *testing.T) {
settings := wingv1.TargetSettings{
Default: &runtime.RawExtension{
Raw: []byte(`{"a":"b"}`),
},
Schedules: []wingv1.ScheduleTargetSettings{
{
Start: "0 8 * * *",
End: "0 10 * * *",
Timezone: "Asia/Shanghai",
Settings: &runtime.RawExtension{
Raw: []byte(`{"a":"c"}`),
},
},
},
}
for _, c := range []struct {
date string
payload string
}{
{
date: "2021-01-01 7:59",
payload: `{"a":"b"}`,
},
{
date: "2021-01-01 8:00",
payload: `{"a":"c"}`,
},
{
date: "2021-01-01 9:00",
payload: `{"a":"c"}`,
},
{
date: "2021-01-01 9:59",
payload: `{"a":"c"}`,
},
{
date: "2021-01-01 10:00",
payload: `{"a":"b"}`,
},
{
date: "2021-01-01 10:01",
payload: `{"a":"b"}`,
},
} {
date, err := time.ParseInLocation(timerange.SchedulePeriodDateFormat, c.date, time.Local)
require.NoError(t, err)
payload, err := GetScheduledSettingsRaw(date, settings)
require.NoError(t, err)
require.Equal(t, c.payload, string(payload))
}
}

0 comments on commit e4a6912

Please sign in to comment.