From 13b20ee3233fa1f5037706e3f77c51ce38d28270 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Thu, 3 Oct 2024 20:22:12 +0000 Subject: [PATCH 1/2] chore: storybook additions and cleanup --- .../CreateEditRolePageView.stories.tsx | 71 +++++++++++++------ .../PermissionPillsList.stories.tsx | 6 -- .../IdpSyncPage/IdpSyncPageView.stories.tsx | 41 ++++++----- 3 files changed, 72 insertions(+), 46 deletions(-) diff --git a/site/src/pages/ManagementSettingsPage/CustomRolesPage/CreateEditRolePageView.stories.tsx b/site/src/pages/ManagementSettingsPage/CustomRolesPage/CreateEditRolePageView.stories.tsx index 11d41480f4b1b..c374aa33d51d6 100644 --- a/site/src/pages/ManagementSettingsPage/CustomRolesPage/CreateEditRolePageView.stories.tsx +++ b/site/src/pages/ManagementSettingsPage/CustomRolesPage/CreateEditRolePageView.stories.tsx @@ -29,52 +29,81 @@ export const Default: Story = { export const CheckboxIndeterminate: Story = { args: { + ...Default.args, role: assignableRole(MockRole2WithOrgPermissions, true), - onSubmit: () => null, - isLoading: false, - organizationName: "my-org", - canAssignOrgRole: true, }, }; export const WithError: Story = { args: { - role: assignableRole(MockRoleWithOrgPermissions, true), - onSubmit: () => null, + ...Default.args, + role: undefined, + error: "this is an error", + }, +}; + +export const WithValidationError: Story = { + args: { + ...Default.args, + role: undefined, error: mockApiError({ message: "A role named new-role already exists.", validations: [{ field: "name", detail: "Role names must be unique" }], }), - isLoading: false, - organizationName: "my-org", - canAssignOrgRole: true, + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step("Enter name", async () => { + const input = canvas.getByLabelText("Name"); + await userEvent.type(input, "new-role"); + input.blur(); + }); }, }; -export const CannotEdit: Story = { +export const InvalidCharsError: Story = { args: { - role: assignableRole(MockRoleWithOrgPermissions, true), - onSubmit: () => null, - error: undefined, - isLoading: false, - organizationName: "my-org", + ...Default.args, + role: undefined, + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + + await step("Enter name", async () => { + const input = canvas.getByLabelText("Name"); + await userEvent.type(input, "!~@#@!"); + input.blur(); + }); + }, +}; + +export const CannotEditRoleName: Story = { + args: { + ...Default.args, canAssignOrgRole: false, }, }; export const ShowAllResources: Story = { args: { - role: assignableRole(MockRoleWithOrgPermissions, true), - onSubmit: () => null, - error: undefined, - isLoading: false, - organizationName: "my-org", - canAssignOrgRole: true, + ...Default.args, allResources: true, }, }; +export const Loading: Story = { + args: { + ...Default.args, + isLoading: true, + }, +}; + export const ToggleParentCheckbox: Story = { + args: { + ...Default.args, + role: undefined, + }, play: async ({ canvasElement }) => { const user = userEvent.setup(); const canvas = within(canvasElement); diff --git a/site/src/pages/ManagementSettingsPage/CustomRolesPage/PermissionPillsList.stories.tsx b/site/src/pages/ManagementSettingsPage/CustomRolesPage/PermissionPillsList.stories.tsx index 327d678e4d802..35c651717be64 100644 --- a/site/src/pages/ManagementSettingsPage/CustomRolesPage/PermissionPillsList.stories.tsx +++ b/site/src/pages/ManagementSettingsPage/CustomRolesPage/PermissionPillsList.stories.tsx @@ -44,9 +44,3 @@ export const HoverOverflowPill: Story = { await userEvent.hover(canvas.getByTestId("overflow-permissions-pill")); }, }; - -export const ShowAllResources: Story = { - args: { - permissions: MockRoleWithOrgPermissions.organization_permissions, - }, -}; diff --git a/site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.stories.tsx b/site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.stories.tsx index c065b07a3cf41..9942239dfd7f5 100644 --- a/site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.stories.tsx +++ b/site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.stories.tsx @@ -1,4 +1,5 @@ import type { Meta, StoryObj } from "@storybook/react"; +import { expect, userEvent, within } from "@storybook/test"; import { MockGroup, MockGroup2, @@ -43,46 +44,48 @@ export const Empty: Story = { }, }; -export const HasError: Story = { +export const Default: Story = { args: { groupSyncSettings: MockGroupSyncSettings, roleSyncSettings: MockRoleSyncSettings, groups: [MockGroup, MockGroup2], groupsMap, organization: MockOrganization, - error: "This is a test error", + error: undefined, }, }; -export const Default: Story = { +export const HasError: Story = { args: { - groupSyncSettings: MockGroupSyncSettings, - roleSyncSettings: MockRoleSyncSettings, - groups: [MockGroup, MockGroup2], - groupsMap, - organization: MockOrganization, - error: undefined, + ...Default.args, + error: "This is a test error", }, }; export const MissingGroups: Story = { args: { + ...Default.args, groupSyncSettings: MockGroupSyncSettings2, - roleSyncSettings: MockRoleSyncSettings, - groups: [MockGroup, MockGroup2], - groupsMap, - organization: MockOrganization, - error: undefined, }, }; export const WithLegacyMapping: Story = { args: { + ...Default.args, groupSyncSettings: MockLegacyMappingGroupSyncSettings, - roleSyncSettings: MockRoleSyncSettings, - groups: [MockGroup, MockGroup2], - groupsMap, - organization: MockOrganization, - error: undefined, + }, +}; + +export const RolesTab: Story = { + args: { + ...Default.args, + }, + play: async ({ canvasElement }) => { + const user = userEvent.setup(); + const canvas = within(canvasElement); + const rolesTab = await canvas.findByText("Role Sync Settings"); + console.log(rolesTab); + await user.click(rolesTab); + await expect(canvas.findByText("IdP Role")).resolves.toBeVisible(); }, }; From 1b585b6e564042952f219cecc820cfb5f83c06a0 Mon Sep 17 00:00:00 2001 From: Jaayden Halko Date: Thu, 3 Oct 2024 23:14:33 +0000 Subject: [PATCH 2/2] fix: remove console --- .../IdpSyncPage/IdpSyncPageView.stories.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.stories.tsx b/site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.stories.tsx index 9942239dfd7f5..239d97ba0a1ad 100644 --- a/site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.stories.tsx +++ b/site/src/pages/ManagementSettingsPage/IdpSyncPage/IdpSyncPageView.stories.tsx @@ -84,7 +84,6 @@ export const RolesTab: Story = { const user = userEvent.setup(); const canvas = within(canvasElement); const rolesTab = await canvas.findByText("Role Sync Settings"); - console.log(rolesTab); await user.click(rolesTab); await expect(canvas.findByText("IdP Role")).resolves.toBeVisible(); }, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy