Skip to content

Commit 7467bfe

Browse files
authored
chore: organize ws stats, schedule stories (#1790)
Resolves: #1681 Summary: - Moves WorkspaceSchedule out of WorkspaceStats - Adds WorkspaceScheduleForm directory Impact: Improves breadth of our chromatic visual regression tests since the examples for WorkspaceStats were non-representative of the component
1 parent d4c26d5 commit 7467bfe

File tree

7 files changed

+69
-69
lines changed

7 files changed

+69
-69
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Story } from "@storybook/react"
2+
import dayjs from "dayjs"
23
import React from "react"
3-
import { MockWorkspace } from "../../testHelpers/renderHelpers"
4+
import * as Mocks from "../../testHelpers/entities"
45
import { WorkspaceSchedule, WorkspaceScheduleProps } from "./WorkspaceSchedule"
56

67
export default {
@@ -11,7 +12,66 @@ export default {
1112

1213
const Template: Story<WorkspaceScheduleProps> = (args) => <WorkspaceSchedule {...args} />
1314

14-
export const Example = Template.bind({})
15-
Example.args = {
16-
workspace: MockWorkspace,
15+
export const NoTTL = Template.bind({})
16+
NoTTL.args = {
17+
workspace: {
18+
...Mocks.MockWorkspace,
19+
ttl: undefined,
20+
},
21+
}
22+
23+
export const ShutdownSoon = Template.bind({})
24+
ShutdownSoon.args = {
25+
workspace: {
26+
...Mocks.MockWorkspace,
27+
28+
latest_build: {
29+
...Mocks.MockWorkspaceBuild,
30+
transition: "start",
31+
updated_at: dayjs().subtract(1, "hour").toString(), // 1 hour ago
32+
},
33+
ttl: 2 * 60 * 60 * 1000 * 1_000_000, // 2 hours
34+
},
35+
}
36+
37+
export const ShutdownLong = Template.bind({})
38+
ShutdownLong.args = {
39+
workspace: {
40+
...Mocks.MockWorkspace,
41+
42+
latest_build: {
43+
...Mocks.MockWorkspaceBuild,
44+
transition: "start",
45+
updated_at: dayjs().toString(),
46+
},
47+
ttl: 7 * 24 * 60 * 60 * 1000 * 1_000_000, // 7 days
48+
},
49+
}
50+
51+
export const WorkspaceOffShort = Template.bind({})
52+
WorkspaceOffShort.args = {
53+
workspace: {
54+
...Mocks.MockWorkspace,
55+
56+
latest_build: {
57+
...Mocks.MockWorkspaceBuild,
58+
transition: "stop",
59+
updated_at: dayjs().subtract(2, "days").toString(),
60+
},
61+
ttl: 2 * 60 * 60 * 1000 * 1_000_000, // 2 hours
62+
},
63+
}
64+
65+
export const WorkspaceOffLong = Template.bind({})
66+
WorkspaceOffLong.args = {
67+
workspace: {
68+
...Mocks.MockWorkspace,
69+
70+
latest_build: {
71+
...Mocks.MockWorkspaceBuild,
72+
transition: "stop",
73+
updated_at: dayjs().subtract(2, "days").toString(),
74+
},
75+
ttl: 2 * 365 * 24 * 60 * 60 * 1000 * 1_000_000, // 2 years
76+
},
1777
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Story } from "@storybook/react"
2-
import dayjs from "dayjs"
32
import React from "react"
43
import * as Mocks from "../../testHelpers/renderHelpers"
54
import { WorkspaceStats, WorkspaceStatsProps } from "../WorkspaceStats/WorkspaceStats"
@@ -11,66 +10,7 @@ export default {
1110

1211
const Template: Story<WorkspaceStatsProps> = (args) => <WorkspaceStats {...args} />
1312

14-
export const NoTTL = Template.bind({})
15-
NoTTL.args = {
16-
workspace: {
17-
...Mocks.MockWorkspace,
18-
ttl: undefined,
19-
},
20-
}
21-
22-
export const ShutdownSoon = Template.bind({})
23-
ShutdownSoon.args = {
24-
workspace: {
25-
...Mocks.MockWorkspace,
26-
27-
latest_build: {
28-
...Mocks.MockWorkspaceBuild,
29-
transition: "start",
30-
updated_at: dayjs().subtract(1, "hour").toString(), // 1 hour ago
31-
},
32-
ttl: 2 * 60 * 60 * 1000 * 1_000_000, // 2 hours
33-
},
34-
}
35-
36-
export const ShutdownLong = Template.bind({})
37-
ShutdownLong.args = {
38-
workspace: {
39-
...Mocks.MockWorkspace,
40-
41-
latest_build: {
42-
...Mocks.MockWorkspaceBuild,
43-
transition: "start",
44-
updated_at: dayjs().toString(),
45-
},
46-
ttl: 7 * 24 * 60 * 60 * 1000 * 1_000_000, // 7 days
47-
},
48-
}
49-
50-
export const WorkspaceOffShort = Template.bind({})
51-
WorkspaceOffShort.args = {
52-
workspace: {
53-
...Mocks.MockWorkspace,
54-
55-
latest_build: {
56-
...Mocks.MockWorkspaceBuild,
57-
transition: "stop",
58-
updated_at: dayjs().subtract(2, "days").toString(),
59-
},
60-
ttl: 2 * 60 * 60 * 1000 * 1_000_000, // 2 hours
61-
},
62-
}
63-
64-
export const WorkspaceOffLong = Template.bind({})
65-
WorkspaceOffLong.args = {
66-
workspace: {
67-
...Mocks.MockWorkspace,
68-
69-
latest_build: {
70-
...Mocks.MockWorkspaceBuild,
71-
transition: "stop",
72-
updated_at: dayjs().subtract(2, "days").toString(),
73-
},
74-
ttl: 2 * 365 * 24 * 60 * 60 * 1000 * 1_000_000, // 2 years
75-
},
13+
export const Example = Template.bind({})
14+
Example.args = {
15+
workspace: Mocks.MockWorkspace,
7616
}

site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as TypesGen from "../../api/typesGenerated"
2-
import { WorkspaceScheduleFormValues } from "../../components/WorkspaceStats/WorkspaceScheduleForm"
2+
import { WorkspaceScheduleFormValues } from "../../components/WorkspaceScheduleForm/WorkspaceScheduleForm"
33
import * as Mocks from "../../testHelpers/entities"
44
import { formValuesToAutoStartRequest, formValuesToTTLRequest, workspaceToInitialValues } from "./WorkspaceSchedulePage"
55

site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { FullScreenLoader } from "../../components/Loader/FullScreenLoader"
1010
import {
1111
WorkspaceScheduleForm,
1212
WorkspaceScheduleFormValues,
13-
} from "../../components/WorkspaceStats/WorkspaceScheduleForm"
13+
} from "../../components/WorkspaceScheduleForm/WorkspaceScheduleForm"
1414
import { firstOrItem } from "../../util/array"
1515
import { dowToWeeklyFlag, extractTimezone, stripTimezone } from "../../util/schedule"
1616
import { workspaceSchedule } from "../../xServices/workspaceSchedule/workspaceScheduleXService"

0 commit comments

Comments
 (0)