From 7467bfe4ede99515709d7afef67d50e5cf01dac2 Mon Sep 17 00:00:00 2001 From: G r e y Date: Thu, 26 May 2022 16:14:08 -0400 Subject: [PATCH] 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 --- .../WorkspaceSchedule.stories.tsx | 68 +++++++++++++++++-- .../WorkspaceScheduleForm.stories.tsx | 0 .../WorkspaceScheduleForm.test.ts | 0 .../WorkspaceScheduleForm.tsx | 0 .../WorkspaceStats/WorkspaceStats.stories.tsx | 66 +----------------- .../WorkspaceSchedulePage.test.tsx | 2 +- .../WorkspaceSchedulePage.tsx | 2 +- 7 files changed, 69 insertions(+), 69 deletions(-) rename site/src/components/{WorkspaceStats => WorkspaceScheduleForm}/WorkspaceScheduleForm.stories.tsx (100%) rename site/src/components/{WorkspaceStats => WorkspaceScheduleForm}/WorkspaceScheduleForm.test.ts (100%) rename site/src/components/{WorkspaceStats => WorkspaceScheduleForm}/WorkspaceScheduleForm.tsx (100%) diff --git a/site/src/components/WorkspaceSchedule/WorkspaceSchedule.stories.tsx b/site/src/components/WorkspaceSchedule/WorkspaceSchedule.stories.tsx index 407810bf26..84ef4af237 100644 --- a/site/src/components/WorkspaceSchedule/WorkspaceSchedule.stories.tsx +++ b/site/src/components/WorkspaceSchedule/WorkspaceSchedule.stories.tsx @@ -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 = (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 + }, } diff --git a/site/src/components/WorkspaceStats/WorkspaceScheduleForm.stories.tsx b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.stories.tsx similarity index 100% rename from site/src/components/WorkspaceStats/WorkspaceScheduleForm.stories.tsx rename to site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.stories.tsx diff --git a/site/src/components/WorkspaceStats/WorkspaceScheduleForm.test.ts b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts similarity index 100% rename from site/src/components/WorkspaceStats/WorkspaceScheduleForm.test.ts rename to site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts diff --git a/site/src/components/WorkspaceStats/WorkspaceScheduleForm.tsx b/site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx similarity index 100% rename from site/src/components/WorkspaceStats/WorkspaceScheduleForm.tsx rename to site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx diff --git a/site/src/components/WorkspaceStats/WorkspaceStats.stories.tsx b/site/src/components/WorkspaceStats/WorkspaceStats.stories.tsx index 03dcdf6047..68bfe20a9d 100644 --- a/site/src/components/WorkspaceStats/WorkspaceStats.stories.tsx +++ b/site/src/components/WorkspaceStats/WorkspaceStats.stories.tsx @@ -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 = (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, } diff --git a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx index 798f6a7b62..3b91ca54ae 100644 --- a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx +++ b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx @@ -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" diff --git a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx index a686daf4da..21ec0e71cd 100644 --- a/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx +++ b/site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx @@ -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"