Skip to content

Commit 73f5476

Browse files
committed
chore: add story to WorkspaceSchedulePage
1 parent 0bde254 commit 73f5476

File tree

4 files changed

+130
-1
lines changed

4 files changed

+130
-1
lines changed
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
import type { Meta, StoryObj } from "@storybook/react";
2+
import { getAuthorizationKey } from "api/queries/authCheck";
3+
import { templateByNameKey } from "api/queries/templates";
4+
import { workspaceByOwnerAndNameKey } from "api/queries/workspaces";
5+
import { AuthProvider } from "contexts/auth/AuthProvider";
6+
import { RequireAuth } from "contexts/auth/RequireAuth";
7+
import { permissionChecks } from "modules/permissions";
8+
import {
9+
reactRouterOutlet,
10+
reactRouterParameters,
11+
} from "storybook-addon-remix-react-router";
12+
import {
13+
MockAppearanceConfig,
14+
MockAuthMethodsAll,
15+
MockBuildInfo,
16+
MockDefaultOrganization,
17+
MockEntitlements,
18+
MockExperiments,
19+
MockPrebuiltWorkspace,
20+
MockTemplate,
21+
MockUserAppearanceSettings,
22+
MockUserOwner,
23+
MockWorkspace,
24+
} from "testHelpers/entities";
25+
import WorkspaceSchedulePage from "./WorkspaceSchedulePage";
26+
27+
import { WorkspaceSettingsContext } from "../WorkspaceSettingsLayout";
28+
29+
const meta = {
30+
title: "pages/WorkspaceSchedulePage",
31+
component: RequireAuth,
32+
parameters: {
33+
layout: "fullscreen",
34+
reactRouter: reactRouterParameters({
35+
location: {
36+
pathParams: {
37+
username: `@${MockWorkspace.owner_name}`,
38+
workspace: MockWorkspace.name,
39+
},
40+
},
41+
routing: reactRouterOutlet(
42+
{
43+
path: "/:username/:workspace/settings/schedule",
44+
},
45+
<WorkspaceSchedulePage />,
46+
),
47+
}),
48+
queries: [
49+
{ key: ["me"], data: MockUserOwner },
50+
{ key: ["authMethods"], data: MockAuthMethodsAll },
51+
{ key: ["hasFirstUser"], data: true },
52+
{ key: ["buildInfo"], data: MockBuildInfo },
53+
{ key: ["entitlements"], data: MockEntitlements },
54+
{ key: ["experiments"], data: MockExperiments },
55+
{ key: ["appearance"], data: MockAppearanceConfig },
56+
{ key: ["organizations"], data: [MockDefaultOrganization] },
57+
{
58+
key: getAuthorizationKey({ checks: permissionChecks }),
59+
data: { editWorkspaceProxies: true },
60+
},
61+
{ key: ["me", "appearance"], data: MockUserAppearanceSettings },
62+
{
63+
key: workspaceByOwnerAndNameKey(
64+
MockWorkspace.owner_name,
65+
MockWorkspace.name,
66+
),
67+
data: MockWorkspace,
68+
},
69+
{
70+
key: getAuthorizationKey({
71+
checks: {
72+
updateWorkspace: {
73+
object: {
74+
resource_type: "workspace",
75+
resource_id: MockWorkspace.id,
76+
owner_id: MockWorkspace.owner_id,
77+
},
78+
action: "update",
79+
},
80+
},
81+
}),
82+
data: { updateWorkspace: true },
83+
},
84+
{
85+
key: templateByNameKey(
86+
MockWorkspace.organization_id,
87+
MockWorkspace.template_name,
88+
),
89+
data: MockTemplate,
90+
},
91+
],
92+
},
93+
decorators: [
94+
(Story, { parameters }) => {
95+
const workspace = parameters.workspace || MockWorkspace;
96+
return (
97+
<AuthProvider>
98+
<WorkspaceSettingsContext.Provider value={workspace}>
99+
<Story />
100+
</WorkspaceSettingsContext.Provider>
101+
</AuthProvider>
102+
);
103+
},
104+
],
105+
} satisfies Meta<typeof WorkspaceSchedulePage>;
106+
107+
export default meta;
108+
type Story = StoryObj<typeof WorkspaceSchedulePage>;
109+
110+
export const RegularWorkspace: Story = {
111+
parameters: {
112+
workspace: MockWorkspace,
113+
},
114+
};
115+
116+
export const PrebuiltWorkspace: Story = {
117+
parameters: {
118+
workspace: MockPrebuiltWorkspace,
119+
},
120+
};

site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const permissionsToCheck = (workspace: TypesGen.Workspace) =>
3434
updateWorkspace: {
3535
object: {
3636
resource_type: "workspace",
37-
resourceId: workspace.id,
37+
resource_id: workspace.id,
3838
owner_id: workspace.owner_id,
3939
},
4040
action: "update",

site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsLayout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,5 @@ export const WorkspaceSettingsLayout: FC = () => {
6969
</>
7070
);
7171
};
72+
73+
export const WorkspaceSettingsContext = WorkspaceSettings;

site/src/testHelpers/entities.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,6 +1414,13 @@ export const MockWorkspace: TypesGen.Workspace = {
14141414
is_prebuild: false,
14151415
};
14161416

1417+
export const MockPrebuiltWorkspace = {
1418+
...MockWorkspace,
1419+
owner_name: "prebuilds",
1420+
name: "prebuilt-workspace",
1421+
is_prebuild: true,
1422+
};
1423+
14171424
export const MockFavoriteWorkspace: TypesGen.Workspace = {
14181425
...MockWorkspace,
14191426
id: "test-favorite-workspace",

0 commit comments

Comments
 (0)