Update unit tests

This commit is contained in:
Presley Pizzo
2022-08-01 21:14:58 +00:00
parent 52b26bf421
commit b22425865d
@@ -1,11 +1,8 @@
import { AutoStart, scheduleToAutoStart } from "pages/WorkspacesPage/schedule"
import { AutoStop, ttlMsToAutoStop } from "pages/WorkspacesPage/ttl"
import * as TypesGen from "../../api/typesGenerated"
import { WorkspaceScheduleFormValues } from "../../components/WorkspaceScheduleForm/WorkspaceScheduleForm"
import * as Mocks from "../../testHelpers/entities"
import {
formValuesToAutoStartRequest,
formValuesToTTLRequest,
workspaceToInitialValues,
} from "./WorkspaceSchedulePage"
import { formValuesToAutoStartRequest, formValuesToTTLRequest } from "./WorkspaceSchedulePage"
const validValues: WorkspaceScheduleFormValues = {
sunday: false,
@@ -155,117 +152,79 @@ describe("WorkspaceSchedulePage", () => {
})
})
describe("workspaceToInitialValues", () => {
it.each<[TypesGen.Workspace, WorkspaceScheduleFormValues]>([
describe("scheduleToAutoStart", () => {
it.each<[string | undefined, AutoStart]>([
// Empty case
[
undefined,
{
...Mocks.MockWorkspace,
autostart_schedule: undefined,
ttl_ms: undefined,
},
{
sunday: false,
monday: false,
tuesday: false,
wednesday: false,
thursday: false,
friday: false,
saturday: false,
startTime: "",
timezone: "",
ttl: 0,
enabled: false,
schedule: {
sunday: false,
monday: false,
tuesday: false,
wednesday: false,
thursday: false,
friday: false,
saturday: false,
startTime: "",
timezone: "",
},
},
],
// ttl-only case (2 hours)
// Basic case: 9:30 1-5 UTC
[
"CRON_TZ=UTC 30 9 * * 1-5",
{
...Mocks.MockWorkspace,
autostart_schedule: "",
ttl_ms: 7_200_000,
},
{
sunday: false,
monday: false,
tuesday: false,
wednesday: false,
thursday: false,
friday: false,
saturday: false,
startTime: "",
timezone: "",
ttl: 2,
enabled: true,
schedule: {
sunday: false,
monday: true,
tuesday: true,
wednesday: true,
thursday: true,
friday: true,
saturday: false,
startTime: "09:30",
timezone: "UTC",
},
},
],
// start schedule only
// Complex case: 4:20 1 3-4 6 Canada/Eastern
[
"CRON_TZ=Canada/Eastern 20 16 * * 1,3-4,6",
{
...Mocks.MockWorkspace,
autostart_schedule: "CRON_TZ=UTC 30 9 * * 1-5",
ttl_ms: undefined,
},
{
sunday: false,
monday: true,
tuesday: true,
wednesday: true,
thursday: true,
friday: true,
saturday: false,
startTime: "09:30",
timezone: "UTC",
ttl: 0,
enabled: true,
schedule: {
sunday: false,
monday: true,
tuesday: false,
wednesday: true,
thursday: true,
friday: false,
saturday: true,
startTime: "16:20",
timezone: "Canada/Eastern",
},
},
],
])(`scheduleToAutoStart(%p) returns %p`, (schedule, autoStart) => {
expect(scheduleToAutoStart(schedule)).toEqual(autoStart)
})
})
// Basic case: 9:30 1-5 UTC running for 2 hours
//
// NOTE: We have to set CRON_TZ here because otherwise this test will
// flake based off of where it runs!
[
{
...Mocks.MockWorkspace,
autostart_schedule: "CRON_TZ=UTC 30 9 * * 1-5",
ttl_ms: 7_200_000,
},
{
sunday: false,
monday: true,
tuesday: true,
wednesday: true,
thursday: true,
friday: true,
saturday: false,
startTime: "09:30",
timezone: "UTC",
ttl: 2,
},
],
// Complex case: 4:20 1 3-4 6 Canada/Eastern for 8 hours
[
{
...Mocks.MockWorkspace,
autostart_schedule: "CRON_TZ=Canada/Eastern 20 16 * * 1,3-4,6",
ttl_ms: 28_800_000,
},
{
sunday: false,
monday: true,
tuesday: false,
wednesday: true,
thursday: true,
friday: false,
saturday: true,
startTime: "16:20",
timezone: "Canada/Eastern",
ttl: 8,
},
],
])(`workspaceToInitialValues(%p) returns %p`, (workspace, formValues) => {
expect(workspaceToInitialValues(workspace)).toEqual(formValues)
describe("ttlMsToAutoStop", () => {
it.each<[number | undefined, AutoStop]>([
// empty case
[undefined, { enabled: false, ttl: 0 }],
// zero
[0, { enabled: false, ttl: 0 }],
// basic case
[28_800_000, { enabled: true, ttl: 8 }],
])(`ttlMsToAutoStop(%p) returns %p`, (ttlMs, autoStop) => {
expect(ttlMsToAutoStop(ttlMs)).toEqual(autoStop)
})
})
})