From b22425865dbe967f88ba2e55eba04758caecd33f Mon Sep 17 00:00:00 2001 From: Presley Pizzo Date: Mon, 1 Aug 2022 21:14:58 +0000 Subject: [PATCH] Update unit tests --- .../WorkspaceSchedulePage.test.tsx | 161 +++++++----------- 1 file changed, 60 insertions(+), 101 deletions(-) diff --git a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx index 61ac5ddfc7..29f564fce6 100644 --- a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx +++ b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx @@ -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) }) }) })