Skip to content

Commit 8b8882f

Browse files
committed
checking out
1 parent cf85bfe commit 8b8882f

File tree

3 files changed

+31
-12
lines changed

3 files changed

+31
-12
lines changed

site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ export const Language = {
4141
errorTime: "Time must be in HH:mm format (24 hours)",
4242
errorTimezone: "Invalid timezone",
4343
errorNoStop: "Time until shutdown must be greater than zero when auto-stop is enabled",
44+
errorTtlMax: "Please enter a limit that is less than or equal to 168 hours (7 days).",
4445
daysOfWeekLabel: "Days of Week",
4546
daySundayLabel: "Sunday",
4647
dayMondayLabel: "Monday",
@@ -159,7 +160,7 @@ export const validationSchema = Yup.object({
159160
ttl: Yup.number()
160161
.integer()
161162
.min(0)
162-
.max(24 * 7 /* 7 days */)
163+
.max(24 * 7 /* 7 days */, Language.errorTtlMax)
163164
.test("positive-if-auto-stop", Language.errorNoStop, function (value) {
164165
const parent = this.parent as WorkspaceScheduleFormValues
165166
if (parent.autoStopEnabled) {

site/src/pages/TemplateSettingsPage/TemplateSettingsForm.tsx

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,15 @@ export const Language = {
2020
descriptionLabel: "Description",
2121
maxTtlLabel: "Auto-stop limit",
2222
iconLabel: "Icon",
23-
// This is the same from the CLI on https://github.com/coder/coder/blob/546157b63ef9204658acf58cb653aa9936b70c49/cli/templateedit.go#L59
24-
maxTtlHelperText: "Edit the template maximum time before shutdown in hours",
2523
formAriaLabel: "Template settings form",
2624
selectEmoji: "Select emoji",
25+
ttlMaxError: "Please enter a limit that is less than or equal to 168 hours (7 days).",
2726
}
2827

2928
export const validationSchema = Yup.object({
3029
name: nameValidator(Language.nameLabel),
3130
description: Yup.string(),
32-
max_ttl_ms: Yup.number(),
31+
max_ttl_ms: Yup.number().integer().min(0).max(168, Language.ttlMaxError),
3332
})
3433

3534
export interface TemplateSettingsForm {
@@ -148,18 +147,11 @@ export const TemplateSettingsForm: FC<TemplateSettingsForm> = ({
148147

149148
<TextField
150149
{...getFieldHelpers("max_ttl_ms")}
151-
helperText={Language.maxTtlHelperText}
152150
disabled={isSubmitting}
153151
fullWidth
154152
inputProps={{ min: 0, step: 1 }}
155153
label={Language.maxTtlLabel}
156154
variant="outlined"
157-
// Display hours from ms
158-
value={form.values.max_ttl_ms ? form.values.max_ttl_ms / 3600000 : ""}
159-
// Convert hours to ms
160-
onChange={(event) =>
161-
form.setFieldValue("max_ttl_ms", Number(event.currentTarget.value) * 3600000)
162-
}
163155
/>
164156
</Stack>
165157

site/src/pages/TemplateSettingsPage/TemplateSettingsPage.test.tsx

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { UpdateTemplateMeta } from "api/typesGenerated"
55
import { Language as FooterFormLanguage } from "components/FormFooter/FormFooter"
66
import { MockTemplate } from "../../testHelpers/entities"
77
import { renderWithAuth } from "../../testHelpers/renderHelpers"
8-
import { Language as FormLanguage } from "./TemplateSettingsForm"
8+
import { Language as FormLanguage, validationSchema } from "./TemplateSettingsForm"
99
import { TemplateSettingsPage } from "./TemplateSettingsPage"
1010
import { Language as ViewLanguage } from "./TemplateSettingsPageView"
1111

@@ -19,6 +19,14 @@ const renderTemplateSettingsPage = async () => {
1919
return renderResult
2020
}
2121

22+
const validFormValues: UpdateTemplateMeta = {
23+
name: "A name",
24+
description: "A description",
25+
icon: "A string",
26+
max_ttl_ms: 24,
27+
min_autostart_interval_ms: 24,
28+
}
29+
2230
const fillAndSubmitForm = async ({
2331
name,
2432
description,
@@ -99,4 +107,22 @@ describe("TemplateSettingsPage", () => {
99107
),
100108
)
101109
})
110+
111+
it("allows a ttl of 7 days", () => {
112+
const values: UpdateTemplateMeta = {
113+
...validFormValues,
114+
max_ttl_ms: 24 * 7,
115+
}
116+
const validate = () => validationSchema.validateSync(values)
117+
expect(validate).not.toThrowError()
118+
})
119+
120+
it("disallows a ttl of 7 days + 1 hour", () => {
121+
const values: UpdateTemplateMeta = {
122+
...validFormValues,
123+
max_ttl_ms: 24 * 7 + 1,
124+
}
125+
const validate = () => validationSchema.validateSync(values)
126+
expect(validate).toThrowError("ttl must be less than or equal to 168")
127+
})
102128
})

0 commit comments

Comments
 (0)