diff --git a/site/src/pages/WorkspacesPage/WorkspacesEmpty.tsx b/site/src/pages/WorkspacesPage/WorkspacesEmpty.tsx index ef15d1a653..edb7d28549 100644 --- a/site/src/pages/WorkspacesPage/WorkspacesEmpty.tsx +++ b/site/src/pages/WorkspacesPage/WorkspacesEmpty.tsx @@ -54,7 +54,7 @@ export const WorkspacesEmpty: FC = ({ description={`${defaultMessage} To create a workspace, you first need to create a template.`} cta={ } className="pb-0" diff --git a/site/src/pages/WorkspacesPage/WorkspacesPage.stories.tsx b/site/src/pages/WorkspacesPage/WorkspacesPage.stories.tsx index 2cc55811ce..36c28c6662 100644 --- a/site/src/pages/WorkspacesPage/WorkspacesPage.stories.tsx +++ b/site/src/pages/WorkspacesPage/WorkspacesPage.stories.tsx @@ -7,6 +7,7 @@ import { waitFor, within, } from "storybook/test"; +import { reactRouterParameters } from "storybook-addon-remix-react-router"; import { API } from "#/api/api"; import { getAuthorizationKey } from "#/api/queries/authCheck"; import { workspacePermissionsByOrganization } from "#/api/queries/organizations"; @@ -241,6 +242,43 @@ export const Empty: Story = { }, }; +export const EmptyWithoutTemplates: Story = { + parameters: { + permissions: { + createTemplates: true, + createWorkspace: true, + }, + queries: [ + { + key: getTemplatesQueryKey(), + data: [], + }, + { + key: workspacesKey({ q: "owner:me", limit: 25, offset: 0 }), + data: { workspaces: [], count: 0 }, + }, + ], + reactRouter: reactRouterParameters({ + location: { path: "/workspaces" }, + routing: [ + { path: "/workspaces", useStoryElement: true }, + { + path: "/templates/new/builder", + element:
Template builder
, + }, + ], + }), + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + const user = userEvent.setup(); + await user.click( + await canvas.findByRole("link", { name: "Create a template" }), + ); + await canvas.findByText("Template builder"); + }, +}; + export const RendersWorkspaces: Story = { beforeEach: () => { spyOn(API, "getWorkspaces").mockResolvedValue(MockWorkspacesResponse);