Skip to content

Commit cf85bfe

Browse files
committed
using hours instead of seconds
1 parent 49de44c commit cf85bfe

File tree

2 files changed

+35
-5
lines changed

2 files changed

+35
-5
lines changed

site/src/pages/TemplateSettingsPage/TemplateSettingsForm.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export const Language = {
2121
maxTtlLabel: "Auto-stop limit",
2222
iconLabel: "Icon",
2323
// 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 seconds",
24+
maxTtlHelperText: "Edit the template maximum time before shutdown in hours",
2525
formAriaLabel: "Template settings form",
2626
selectEmoji: "Select emoji",
2727
}
@@ -154,11 +154,11 @@ export const TemplateSettingsForm: FC<TemplateSettingsForm> = ({
154154
inputProps={{ min: 0, step: 1 }}
155155
label={Language.maxTtlLabel}
156156
variant="outlined"
157-
// Display seconds from ms
158-
value={form.values.max_ttl_ms ? form.values.max_ttl_ms / 1000 : ""}
159-
// Convert ms to seconds
157+
// Display hours from ms
158+
value={form.values.max_ttl_ms ? form.values.max_ttl_ms / 3600000 : ""}
159+
// Convert hours to ms
160160
onChange={(event) =>
161-
form.setFieldValue("max_ttl_ms", Number(event.currentTarget.value) * 1000)
161+
form.setFieldValue("max_ttl_ms", Number(event.currentTarget.value) * 3600000)
162162
}
163163
/>
164164
</Stack>

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,34 @@ describe("TemplateSettingsPage", () => {
6969

7070
await waitFor(() => expect(API.updateTemplateMeta).toBeCalledTimes(1))
7171
})
72+
73+
test("ttl is converted to and from hours", async () => {
74+
await renderTemplateSettingsPage()
75+
76+
const newTemplateSettings = {
77+
name: "edited-template-name",
78+
description: "Edited description",
79+
max_ttl_ms: 1,
80+
icon: "/icon/code.svg",
81+
}
82+
83+
jest.spyOn(API, "updateTemplateMeta").mockResolvedValueOnce({
84+
...MockTemplate,
85+
...newTemplateSettings,
86+
})
87+
88+
await fillAndSubmitForm(newTemplateSettings)
89+
expect(screen.getByDisplayValue(1)).toBeInTheDocument()
90+
await waitFor(() => expect(API.updateTemplateMeta).toBeCalledTimes(1))
91+
92+
await waitFor(() =>
93+
expect(API.updateTemplateMeta).toBeCalledWith(
94+
"test-template",
95+
expect.objectContaining({
96+
...newTemplateSettings,
97+
max_ttl_ms: 3600000,
98+
}),
99+
),
100+
)
101+
})
72102
})

0 commit comments

Comments
 (0)