From 33a57e8aae250b8e3b4d0e07d48a905d91259301 Mon Sep 17 00:00:00 2001 From: panteliselef Date: Mon, 18 Dec 2023 12:08:23 +0200 Subject: [PATCH 1/2] test(clerk-js): Remove legacy roles fallback --- .../__tests__/InviteMembersPage.test.tsx | 134 ++++++++++++++++-- .../__tests__/OrganizationMembers.test.tsx | 30 +++- 2 files changed, 151 insertions(+), 13 deletions(-) diff --git a/packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/InviteMembersPage.test.tsx b/packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/InviteMembersPage.test.tsx index b47c065b8db..08bde415c31 100644 --- a/packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/InviteMembersPage.test.tsx +++ b/packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/InviteMembersPage.test.tsx @@ -36,7 +36,23 @@ describe('InviteMembersPage', () => { }); }); - fixtures.clerk.organization?.getRoles.mockRejectedValue(null); + fixtures.clerk.organization?.getRoles.mockResolvedValue({ + total_count: 1, + data: [ + { + pathRoot: '', + reload: jest.fn(), + id: 'member', + key: 'member', + name: 'member', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + ], + }); + const { getByText, getByRole, userEvent, getByTestId } = render(, { wrapper }); expect(getByRole('button', { name: 'Send invitations' })).toBeDisabled(); @@ -58,18 +74,34 @@ describe('InviteMembersPage', () => { }); }); - fixtures.clerk.organization?.getRoles.mockRejectedValue(null); + fixtures.clerk.organization?.getRoles.mockResolvedValue({ + total_count: 2, + data: [ + { + pathRoot: '', + reload: jest.fn(), + id: 'member', + key: 'member', + name: 'member', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + ], + }); + fixtures.clerk.organization?.inviteMembers.mockResolvedValueOnce([{}] as OrganizationInvitationResource[]); const { getByRole, userEvent, getByTestId, getByText } = render(, { wrapper }); await userEvent.type(getByTestId('tag-input'), 'test+1@clerk.com,'); await userEvent.click(getByRole('button', { name: 'Select an option' })); - await userEvent.click(getByText('Member')); + await userEvent.click(getByText(/^member$/i)); await userEvent.click(getByRole('button', { name: 'Send invitations' })); await waitFor(() => { expect(fixtures.clerk.organization?.inviteMembers).toHaveBeenCalledWith({ emailAddresses: ['test+1@clerk.com'], - role: 'basic_member' as MembershipRole, + role: 'member' as MembershipRole, }); }); }); @@ -123,7 +155,23 @@ describe('InviteMembersPage', () => { }); }); - fixtures.clerk.organization?.getRoles.mockRejectedValue(null); + fixtures.clerk.organization?.getRoles.mockResolvedValue({ + total_count: 2, + data: [ + { + pathRoot: '', + reload: jest.fn(), + id: 'member', + key: 'member', + name: 'member', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + ], + }); + fixtures.clerk.organization?.inviteMembers.mockResolvedValueOnce([{}] as OrganizationInvitationResource[]); const { getByRole, userEvent, getByTestId, getByText } = render(, { wrapper }); await userEvent.type( @@ -131,13 +179,13 @@ describe('InviteMembersPage', () => { 'test+1@clerk.com,test+2@clerk.com,test+3@clerk.com,test+4@clerk.com,', ); await userEvent.click(getByRole('button', { name: 'Select an option' })); - await userEvent.click(getByText('Member')); + await userEvent.click(getByText(/^member$/i)); await userEvent.click(getByRole('button', { name: 'Send invitations' })); await waitFor(() => { expect(fixtures.clerk.organization?.inviteMembers).toHaveBeenCalledWith({ emailAddresses: ['test+1@clerk.com', 'test+2@clerk.com', 'test+3@clerk.com', 'test+4@clerk.com'], - role: 'basic_member' as MembershipRole, + role: 'member' as MembershipRole, }); }); }); @@ -151,7 +199,23 @@ describe('InviteMembersPage', () => { }); }); - fixtures.clerk.organization?.getRoles.mockRejectedValue(null); + fixtures.clerk.organization?.getRoles.mockResolvedValue({ + total_count: 2, + data: [ + { + pathRoot: '', + reload: jest.fn(), + id: 'admin', + key: 'admin', + name: 'Admin', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + ], + }); + fixtures.clerk.organization?.inviteMembers.mockResolvedValueOnce([{}] as OrganizationInvitationResource[]); const { getByRole, userEvent, getByText, getByTestId } = render(, { wrapper }); await userEvent.type(getByTestId('tag-input'), 'test+1@clerk.com,'); @@ -175,7 +239,23 @@ describe('InviteMembersPage', () => { }); }); - fixtures.clerk.organization?.getRoles.mockRejectedValue(null); + fixtures.clerk.organization?.getRoles.mockResolvedValue({ + total_count: 2, + data: [ + { + pathRoot: '', + reload: jest.fn(), + id: 'member', + key: 'member', + name: 'member', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + ], + }); + fixtures.clerk.organization?.inviteMembers.mockRejectedValueOnce( new ClerkAPIResponseError('Error', { data: [ @@ -213,7 +293,23 @@ describe('InviteMembersPage', () => { }); }); - fixtures.clerk.organization?.getRoles.mockRejectedValue(null); + fixtures.clerk.organization?.getRoles.mockResolvedValue({ + total_count: 2, + data: [ + { + pathRoot: '', + reload: jest.fn(), + id: 'member', + key: 'member', + name: 'member', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + ], + }); + fixtures.clerk.organization?.inviteMembers.mockRejectedValueOnce( new ClerkAPIResponseError('Error', { data: [ @@ -247,7 +343,23 @@ describe('InviteMembersPage', () => { }); }); - fixtures.clerk.organization?.getRoles.mockRejectedValue(null); + fixtures.clerk.organization?.getRoles.mockResolvedValue({ + total_count: 2, + data: [ + { + pathRoot: '', + reload: jest.fn(), + id: 'member', + key: 'member', + name: 'member', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + ], + }); + fixtures.clerk.organization?.inviteMembers.mockRejectedValueOnce( new ClerkAPIResponseError('Error', { data: [ diff --git a/packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/OrganizationMembers.test.tsx b/packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/OrganizationMembers.test.tsx index 5e698a2df54..a27671a5487 100644 --- a/packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/OrganizationMembers.test.tsx +++ b/packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/OrganizationMembers.test.tsx @@ -134,7 +134,7 @@ describe('OrganizationMembers', () => { createFakeMember({ id: '2', orgId: '1', - role: 'basic_member', + role: 'member', identifier: 'test_user2', firstName: 'First2', lastName: 'Last2', @@ -172,7 +172,33 @@ describe('OrganizationMembers', () => { }), ); - fixtures.clerk.organization?.getRoles.mockRejectedValue(null); + fixtures.clerk.organization?.getRoles.mockResolvedValue({ + total_count: 2, + data: [ + { + pathRoot: '', + reload: jest.fn(), + id: 'member', + key: 'member', + name: 'Member', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + { + pathRoot: '', + reload: jest.fn(), + id: 'admin', + key: 'admin', + name: 'Admin', + description: '', + permissions: [], + createdAt: new Date(), + updatedAt: new Date(), + }, + ], + }); const { container, queryByText, queryAllByRole } = render(, { wrapper }); From 57656228b38ec6745382828172f92892cb74b56f Mon Sep 17 00:00:00 2001 From: panteliselef Date: Mon, 18 Dec 2023 12:18:03 +0200 Subject: [PATCH 2/2] test(clerk-js): Remove legacy roles fallback --- .changeset/perfect-ants-joke.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .changeset/perfect-ants-joke.md diff --git a/.changeset/perfect-ants-joke.md b/.changeset/perfect-ants-joke.md new file mode 100644 index 00000000000..a845151cc84 --- /dev/null +++ b/.changeset/perfect-ants-joke.md @@ -0,0 +1,2 @@ +--- +---