Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: add story to WorkspaceSchedulePage
  • Loading branch information
ssncferreira committed Jul 14, 2025
commit 73f54764b7c31567d56aee71a2fdaf815176de85
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
import type { Meta, StoryObj } from "@storybook/react";
import { getAuthorizationKey } from "api/queries/authCheck";
import { templateByNameKey } from "api/queries/templates";
import { workspaceByOwnerAndNameKey } from "api/queries/workspaces";
import { AuthProvider } from "contexts/auth/AuthProvider";
import { RequireAuth } from "contexts/auth/RequireAuth";
import { permissionChecks } from "modules/permissions";
import {
reactRouterOutlet,
reactRouterParameters,
} from "storybook-addon-remix-react-router";
import {
MockAppearanceConfig,
MockAuthMethodsAll,
MockBuildInfo,
MockDefaultOrganization,
MockEntitlements,
MockExperiments,
MockPrebuiltWorkspace,
MockTemplate,
MockUserAppearanceSettings,
MockUserOwner,
MockWorkspace,
} from "testHelpers/entities";
import WorkspaceSchedulePage from "./WorkspaceSchedulePage";

import { WorkspaceSettingsContext } from "../WorkspaceSettingsLayout";

const meta = {
title: "pages/WorkspaceSchedulePage",
component: RequireAuth,
parameters: {
layout: "fullscreen",
reactRouter: reactRouterParameters({
location: {
pathParams: {
username: `@${MockWorkspace.owner_name}`,
workspace: MockWorkspace.name,
},
},
routing: reactRouterOutlet(
{
path: "/:username/:workspace/settings/schedule",
},
<WorkspaceSchedulePage />,
),
}),
queries: [
{ key: ["me"], data: MockUserOwner },
{ key: ["authMethods"], data: MockAuthMethodsAll },
{ key: ["hasFirstUser"], data: true },
{ key: ["buildInfo"], data: MockBuildInfo },
{ key: ["entitlements"], data: MockEntitlements },
{ key: ["experiments"], data: MockExperiments },
{ key: ["appearance"], data: MockAppearanceConfig },
{ key: ["organizations"], data: [MockDefaultOrganization] },
{
key: getAuthorizationKey({ checks: permissionChecks }),
data: { editWorkspaceProxies: true },
},
{ key: ["me", "appearance"], data: MockUserAppearanceSettings },
{
key: workspaceByOwnerAndNameKey(
MockWorkspace.owner_name,
MockWorkspace.name,
),
data: MockWorkspace,
},
{
key: getAuthorizationKey({
checks: {
updateWorkspace: {
object: {
resource_type: "workspace",
resource_id: MockWorkspace.id,
owner_id: MockWorkspace.owner_id,
},
action: "update",
},
},
}),
data: { updateWorkspace: true },
},
{
key: templateByNameKey(
MockWorkspace.organization_id,
MockWorkspace.template_name,
),
data: MockTemplate,
},
],
},
decorators: [
(Story, { parameters }) => {
const workspace = parameters.workspace || MockWorkspace;
return (
<AuthProvider>
<WorkspaceSettingsContext.Provider value={workspace}>
<Story />
</WorkspaceSettingsContext.Provider>
</AuthProvider>
);
},
],
} satisfies Meta<typeof WorkspaceSchedulePage>;

export default meta;
type Story = StoryObj<typeof WorkspaceSchedulePage>;

export const RegularWorkspace: Story = {
parameters: {
workspace: MockWorkspace,
},
};

export const PrebuiltWorkspace: Story = {
parameters: {
workspace: MockPrebuiltWorkspace,
},
};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd suggest adding a story here to showcase the new behaviour.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 73f5476

Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const permissionsToCheck = (workspace: TypesGen.Workspace) =>
updateWorkspace: {
object: {
resource_type: "workspace",
resourceId: workspace.id,
resource_id: workspace.id,
owner_id: workspace.owner_id,
},
action: "update",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,5 @@ export const WorkspaceSettingsLayout: FC = () => {
</>
);
};

export const WorkspaceSettingsContext = WorkspaceSettings;
7 changes: 7 additions & 0 deletions site/src/testHelpers/entities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1414,6 +1414,13 @@ export const MockWorkspace: TypesGen.Workspace = {
is_prebuild: false,
};

export const MockPrebuiltWorkspace = {
...MockWorkspace,
owner_name: "prebuilds",
name: "prebuilt-workspace",
is_prebuild: true,
};

export const MockFavoriteWorkspace: TypesGen.Workspace = {
...MockWorkspace,
id: "test-favorite-workspace",
Expand Down
Loading