mirror of
https://github.com/coder/coder.git
synced 2026-09-22 05:05:20 +08:00
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:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user