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
This commit is contained in:
G r e y
2022-05-26 16:14:08 -04:00
committed by GitHub
parent d4c26d534c
commit 7467bfe4ed
7 changed files with 69 additions and 69 deletions
@@ -1,6 +1,7 @@
import { Story } from "@storybook/react"
import dayjs from "dayjs"
import React from "react"
import { MockWorkspace } from "../../testHelpers/renderHelpers"
import * as Mocks from "../../testHelpers/entities"
import { WorkspaceSchedule, WorkspaceScheduleProps } from "./WorkspaceSchedule"
export default {
@@ -11,7 +12,66 @@ export default {
const Template: Story<WorkspaceScheduleProps> = (args) => <WorkspaceSchedule {...args} />
export const Example = Template.bind({})
Example.args = {
workspace: MockWorkspace,
export const NoTTL = Template.bind({})
NoTTL.args = {
workspace: {
...Mocks.MockWorkspace,
ttl: undefined,
},
}
export const ShutdownSoon = Template.bind({})
ShutdownSoon.args = {
workspace: {
...Mocks.MockWorkspace,
latest_build: {
...Mocks.MockWorkspaceBuild,
transition: "start",
updated_at: dayjs().subtract(1, "hour").toString(), // 1 hour ago
},
ttl: 2 * 60 * 60 * 1000 * 1_000_000, // 2 hours
},
}
export const ShutdownLong = Template.bind({})
ShutdownLong.args = {
workspace: {
...Mocks.MockWorkspace,
latest_build: {
...Mocks.MockWorkspaceBuild,
transition: "start",
updated_at: dayjs().toString(),
},
ttl: 7 * 24 * 60 * 60 * 1000 * 1_000_000, // 7 days
},
}
export const WorkspaceOffShort = Template.bind({})
WorkspaceOffShort.args = {
workspace: {
...Mocks.MockWorkspace,
latest_build: {
...Mocks.MockWorkspaceBuild,
transition: "stop",
updated_at: dayjs().subtract(2, "days").toString(),
},
ttl: 2 * 60 * 60 * 1000 * 1_000_000, // 2 hours
},
}
export const WorkspaceOffLong = Template.bind({})
WorkspaceOffLong.args = {
workspace: {
...Mocks.MockWorkspace,
latest_build: {
...Mocks.MockWorkspaceBuild,
transition: "stop",
updated_at: dayjs().subtract(2, "days").toString(),
},
ttl: 2 * 365 * 24 * 60 * 60 * 1000 * 1_000_000, // 2 years
},
}
@@ -1,5 +1,4 @@
import { Story } from "@storybook/react"
import dayjs from "dayjs"
import React from "react"
import * as Mocks from "../../testHelpers/renderHelpers"
import { WorkspaceStats, WorkspaceStatsProps } from "../WorkspaceStats/WorkspaceStats"
@@ -11,66 +10,7 @@ export default {
const Template: Story<WorkspaceStatsProps> = (args) => <WorkspaceStats {...args} />
export const NoTTL = Template.bind({})
NoTTL.args = {
workspace: {
...Mocks.MockWorkspace,
ttl: undefined,
},
}
export const ShutdownSoon = Template.bind({})
ShutdownSoon.args = {
workspace: {
...Mocks.MockWorkspace,
latest_build: {
...Mocks.MockWorkspaceBuild,
transition: "start",
updated_at: dayjs().subtract(1, "hour").toString(), // 1 hour ago
},
ttl: 2 * 60 * 60 * 1000 * 1_000_000, // 2 hours
},
}
export const ShutdownLong = Template.bind({})
ShutdownLong.args = {
workspace: {
...Mocks.MockWorkspace,
latest_build: {
...Mocks.MockWorkspaceBuild,
transition: "start",
updated_at: dayjs().toString(),
},
ttl: 7 * 24 * 60 * 60 * 1000 * 1_000_000, // 7 days
},
}
export const WorkspaceOffShort = Template.bind({})
WorkspaceOffShort.args = {
workspace: {
...Mocks.MockWorkspace,
latest_build: {
...Mocks.MockWorkspaceBuild,
transition: "stop",
updated_at: dayjs().subtract(2, "days").toString(),
},
ttl: 2 * 60 * 60 * 1000 * 1_000_000, // 2 hours
},
}
export const WorkspaceOffLong = Template.bind({})
WorkspaceOffLong.args = {
workspace: {
...Mocks.MockWorkspace,
latest_build: {
...Mocks.MockWorkspaceBuild,
transition: "stop",
updated_at: dayjs().subtract(2, "days").toString(),
},
ttl: 2 * 365 * 24 * 60 * 60 * 1000 * 1_000_000, // 2 years
},
export const Example = Template.bind({})
Example.args = {
workspace: Mocks.MockWorkspace,
}
@@ -1,5 +1,5 @@
import * as TypesGen from "../../api/typesGenerated"
import { WorkspaceScheduleFormValues } from "../../components/WorkspaceStats/WorkspaceScheduleForm"
import { WorkspaceScheduleFormValues } from "../../components/WorkspaceScheduleForm/WorkspaceScheduleForm"
import * as Mocks from "../../testHelpers/entities"
import { formValuesToAutoStartRequest, formValuesToTTLRequest, workspaceToInitialValues } from "./WorkspaceSchedulePage"
@@ -10,7 +10,7 @@ import { FullScreenLoader } from "../../components/Loader/FullScreenLoader"
import {
WorkspaceScheduleForm,
WorkspaceScheduleFormValues,
} from "../../components/WorkspaceStats/WorkspaceScheduleForm"
} from "../../components/WorkspaceScheduleForm/WorkspaceScheduleForm"
import { firstOrItem } from "../../util/array"
import { dowToWeeklyFlag, extractTimezone, stripTimezone } from "../../util/schedule"
import { workspaceSchedule } from "../../xServices/workspaceSchedule/workspaceScheduleXService"