diff --git a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts index b1ffe7795b800..31cc6a4eac553 100644 --- a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts +++ b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts @@ -110,4 +110,22 @@ describe("validationSchema", () => { const validate = () => validationSchema.validateSync(values) expect(validate).toThrowError(Language.errorTimezone) }) + + it("allows a ttl of 7 days", () => { + const values: WorkspaceScheduleFormValues = { + ...valid, + ttl: 24 * 7, + } + const validate = () => validationSchema.validateSync(values) + expect(validate).not.toThrowError() + }) + + it("disallows a ttl of 7 days + 1 hour", () => { + const values: WorkspaceScheduleFormValues = { + ...valid, + ttl: 24 * 7 + 1, + } + const validate = () => validationSchema.validateSync(values) + expect(validate).toThrowError("ttl must be less than or equal to 168") + }) }) diff --git a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx index b883c4ed07b91..b1cfcc29910ca 100644 --- a/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx +++ b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx @@ -124,7 +124,10 @@ export const validationSchema = Yup.object({ } } }), - ttl: Yup.number().min(0).integer(), + ttl: Yup.number() + .integer() + .min(0) + .max(24 * 7 /* 7 days */), }) export const WorkspaceScheduleForm: FC = ({ @@ -171,7 +174,7 @@ export const WorkspaceScheduleForm: FC = ({ = ({ , )} - disabled={form.isSubmitting || isLoading || !form.values.startTime} + disabled={isLoading || !form.values.startTime} InputLabelProps={{ shrink: true, }} @@ -207,7 +210,7 @@ export const WorkspaceScheduleForm: FC = ({ control={ = ({ - +