Skip to content

Commit 3fa0fe9

Browse files
committed
chore(clerk-js): Minor updates
1 parent e60953d commit 3fa0fe9

File tree

6 files changed

+61
-98
lines changed

6 files changed

+61
-98
lines changed

packages/clerk-js/src/ui.retheme/components/OrganizationProfile/__tests__/OrganizationMembers.test.tsx

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import userEvent from '@testing-library/user-event';
55

66
import { render } from '../../../../testUtils';
77
import { bindCreateFixtures } from '../../../utils/test/createFixtures';
8-
import { runFakeTimers } from '../../../utils/test/runFakeTimers';
98
import { OrganizationMembers } from '../OrganizationMembers';
109
import { createFakeMember, createFakeOrganizationInvitation, createFakeOrganizationMembershipRequest } from './utils';
1110

@@ -59,11 +58,11 @@ describe('OrganizationMembers', () => {
5958

6059
fixtures.clerk.organization?.getRoles.mockRejectedValue(null);
6160

62-
const { getByRole, getByText } = render(<OrganizationMembers />, { wrapper });
61+
const { getByRole, findByText } = render(<OrganizationMembers />, { wrapper });
6362

6463
await userEvent.click(getByRole('tab', { name: 'Invitations' }));
65-
expect(getByText('Invited')).toBeDefined();
66-
expect(getByRole('button', { name: 'Invite' })).toBeDefined();
64+
expect(await findByText('Invited')).toBeInTheDocument();
65+
expect(getByRole('button', { name: 'Invite' })).toBeInTheDocument();
6766
});
6867

6968
it('does not show invitations and requests if user is not an admin', async () => {
@@ -322,12 +321,8 @@ describe('OrganizationMembers', () => {
322321
}),
323322
);
324323

325-
await runFakeTimers(async () => {
326-
const { getByText } = render(<OrganizationMembers />, { wrapper });
327-
await waitFor(() => {
328-
expect(getByText('2')).toBeInTheDocument();
329-
});
330-
});
324+
const { findByText } = render(<OrganizationMembers />, { wrapper });
325+
expect(await findByText('2')).toBeInTheDocument();
331326
});
332327

333328
it.todo('removes member from organization when clicking the respective button on a user row');
@@ -366,17 +361,16 @@ describe('OrganizationMembers', () => {
366361
}),
367362
);
368363

369-
const { container, getByRole, getByText } = render(<OrganizationMembers />, { wrapper });
364+
const { container, getByRole, getByText, findByText } = render(<OrganizationMembers />, { wrapper });
370365

371366
await waitForLoadingCompleted(container);
372367
await userEvent.click(getByRole('tab', { name: 'Invitations' }));
373368

374-
expect(fixtures.clerk.organization?.getInvitations).toHaveBeenCalled();
375-
376-
expect(getByText('[email protected]')).toBeInTheDocument();
369+
expect(await findByText('[email protected]')).toBeInTheDocument();
377370
expect(getByText('Admin')).toBeInTheDocument();
378371
expect(getByText('[email protected]')).toBeInTheDocument();
379372
expect(getByText('Member')).toBeInTheDocument();
373+
expect(fixtures.clerk.organization?.getInvitations).toHaveBeenCalled();
380374
});
381375

382376
it('changes tab and renders pending requests', async () => {

packages/clerk-js/src/ui.retheme/components/OrganizationProfile/__tests__/OrganizationProfile.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import { OrganizationProfile } from '../OrganizationProfile';
99
const { createFixtures } = bindCreateFixtures('OrganizationProfile');
1010

1111
describe('OrganizationProfile', () => {
12+
beforeEach(() => jest.useFakeTimers());
13+
afterEach(() => jest.useRealTimers());
1214
it('includes buttons for the bigger sections', async () => {
1315
const { wrapper } = await createFixtures(f => {
1416
f.withOrganizations();

packages/clerk-js/src/ui.retheme/components/OrganizationSwitcher/__tests__/OrganizationSwitcher.test.tsx

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { describe } from '@jest/globals';
33

44
import { act, render, waitFor } from '../../../../testUtils';
55
import { bindCreateFixtures } from '../../../utils/test/createFixtures';
6-
import { runFakeTimers } from '../../../utils/test/runFakeTimers';
76
import { OrganizationSwitcher } from '../OrganizationSwitcher';
87
import {
98
createFakeUserOrganizationInvitation,
@@ -15,18 +14,12 @@ const { createFixtures } = bindCreateFixtures('OrganizationSwitcher');
1514

1615
describe('OrganizationSwitcher', () => {
1716
it('renders component', async () => {
18-
jest.useFakeTimers();
19-
2017
const { wrapper } = await createFixtures(f => {
2118
f.withOrganizations();
2219
f.withUser({ email_addresses: ['[email protected]'] });
2320
});
24-
const { queryByRole } = await act(() => render(<OrganizationSwitcher />, { wrapper }));
25-
26-
jest.advanceTimersByTime(15000);
27-
expect(queryByRole('button')).toBeDefined();
28-
29-
jest.useRealTimers();
21+
const { getByRole } = await act(() => render(<OrganizationSwitcher />, { wrapper }));
22+
expect(getByRole('button')).toBeInTheDocument();
3023
});
3124

3225
describe('Personal Workspace', () => {
@@ -37,7 +30,7 @@ describe('OrganizationSwitcher', () => {
3730
});
3831
props.setProps({ hidePersonal: false });
3932
const { getByText } = await act(() => render(<OrganizationSwitcher />, { wrapper }));
40-
expect(getByText('Personal account')).toBeDefined();
33+
expect(getByText('Personal account')).toBeInTheDocument();
4134
});
4235

4336
it('does not show the personal workspace when disabled', async () => {
@@ -49,7 +42,7 @@ describe('OrganizationSwitcher', () => {
4942
const { queryByText, getByRole, userEvent, getByText } = render(<OrganizationSwitcher />, { wrapper });
5043
await userEvent.click(getByRole('button'));
5144
expect(queryByText('Personal Workspace')).toBeNull();
52-
expect(getByText('No organization selected')).toBeDefined();
45+
expect(getByText('No organization selected')).toBeInTheDocument();
5346
});
5447
});
5548

@@ -77,13 +70,8 @@ describe('OrganizationSwitcher', () => {
7770
}),
7871
);
7972

80-
await runFakeTimers(async () => {
81-
const { getByText } = render(<OrganizationSwitcher />, { wrapper });
82-
83-
await waitFor(() => {
84-
expect(getByText('5')).toBeInTheDocument();
85-
});
86-
});
73+
const { findByText } = render(<OrganizationSwitcher />, { wrapper });
74+
expect(await findByText('5')).toBeInTheDocument();
8775
});
8876

8977
it('shows the counter for pending suggestions and invitations and membership requests', async () => {
@@ -116,14 +104,8 @@ describe('OrganizationSwitcher', () => {
116104
total_count: 3,
117105
}),
118106
);
119-
120-
await runFakeTimers(async () => {
121-
const { getByText } = render(<OrganizationSwitcher />, { wrapper });
122-
123-
await waitFor(() => {
124-
expect(getByText('7')).toBeInTheDocument();
125-
});
126-
});
107+
const { findByText } = render(<OrganizationSwitcher />, { wrapper });
108+
expect(await findByText('7')).toBeInTheDocument();
127109
});
128110
});
129111

@@ -137,7 +119,7 @@ describe('OrganizationSwitcher', () => {
137119
props.setProps({ hidePersonal: true });
138120
const { getByText, getByRole, userEvent } = render(<OrganizationSwitcher />, { wrapper });
139121
await userEvent.click(getByRole('button'));
140-
expect(getByText('Create Organization')).toBeDefined();
122+
expect(getByText('Create Organization')).toBeInTheDocument();
141123
});
142124

143125
it('lists all organizations the user belongs to', async () => {
@@ -182,8 +164,8 @@ describe('OrganizationSwitcher', () => {
182164
const { getAllByText, getByText, getByRole, userEvent } = render(<OrganizationSwitcher />, { wrapper });
183165
await userEvent.click(getByRole('button'));
184166
expect(getAllByText('Org1')).not.toBeNull();
185-
expect(getByText('Personal account')).toBeDefined();
186-
expect(getByText('Org2')).toBeDefined();
167+
expect(getByText('Personal account')).toBeInTheDocument();
168+
expect(getByText('Org2')).toBeInTheDocument();
187169
});
188170

189171
it.each([
@@ -202,8 +184,8 @@ describe('OrganizationSwitcher', () => {
202184
props.setProps({ hidePersonal: true });
203185
const { getAllByText, getByText, getByRole, userEvent } = render(<OrganizationSwitcher />, { wrapper });
204186
await userEvent.click(getByRole('button'));
205-
expect(getAllByText('Org1')).not.toBeNull();
206-
expect(getByText(text)).toBeDefined();
187+
expect(getAllByText('Org1').length).toBeGreaterThan(0);
188+
expect(getByText(text)).toBeInTheDocument();
207189
});
208190

209191
it('opens organization profile when "Manage Organization" is clicked', async () => {

packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/OrganizationMembers.test.tsx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import userEvent from '@testing-library/user-event';
55

66
import { render } from '../../../../testUtils';
77
import { bindCreateFixtures } from '../../../utils/test/createFixtures';
8-
import { runFakeTimers } from '../../../utils/test/runFakeTimers';
98
import { OrganizationMembers } from '../OrganizationMembers';
109
import { createFakeMember, createFakeOrganizationInvitation, createFakeOrganizationMembershipRequest } from './utils';
1110

@@ -24,6 +23,7 @@ describe('OrganizationMembers', () => {
2423

2524
fixtures.clerk.organization?.getRoles.mockRejectedValue(null);
2625
const { container, getByText, getByRole } = render(<OrganizationMembers />, { wrapper });
26+
2727
await waitForLoadingCompleted(container);
2828

2929
expect(getByRole('heading', { name: /members/i })).toBeInTheDocument();
@@ -44,6 +44,7 @@ describe('OrganizationMembers', () => {
4444
fixtures.clerk.organization?.getRoles.mockRejectedValue(null);
4545

4646
const { getByRole, container } = render(<OrganizationMembers />, { wrapper });
47+
4748
await waitForLoadingCompleted(container);
4849

4950
expect(getByRole('tab', { name: 'Requests' })).toBeInTheDocument();
@@ -57,11 +58,11 @@ describe('OrganizationMembers', () => {
5758

5859
fixtures.clerk.organization?.getRoles.mockRejectedValue(null);
5960

60-
const { getByRole, getByText } = render(<OrganizationMembers />, { wrapper });
61+
const { getByRole, findByText } = render(<OrganizationMembers />, { wrapper });
6162

6263
await userEvent.click(getByRole('tab', { name: 'Invitations' }));
63-
expect(getByText('Invited')).toBeDefined();
64-
expect(getByRole('button', { name: 'Invite' })).toBeDefined();
64+
expect(await findByText('Invited')).toBeInTheDocument();
65+
expect(getByRole('button', { name: 'Invite' })).toBeInTheDocument();
6566
});
6667

6768
it('does not show invitations and requests if user is not an admin', async () => {
@@ -76,6 +77,7 @@ describe('OrganizationMembers', () => {
7677
fixtures.clerk.organization?.getRoles.mockRejectedValue(null);
7778

7879
const { container, queryByRole } = render(<OrganizationMembers />, { wrapper });
80+
7981
await waitForLoadingCompleted(container);
8082

8183
expect(queryByRole('tab', { name: 'Members' })).toBeInTheDocument();
@@ -110,10 +112,12 @@ describe('OrganizationMembers', () => {
110112
fixtures.clerk.organization?.getRoles.mockRejectedValue(null);
111113

112114
const { container, getByRole } = render(<OrganizationMembers />, { wrapper });
115+
113116
await waitForLoadingCompleted(container);
114117

115118
await userEvent.click(getByRole('tab', { name: 'Invitations' }));
116119
await userEvent.click(getByRole('button', { name: 'Invite' }));
120+
117121
expect(fixtures.router.navigate).toHaveBeenCalledWith('invite-members');
118122
});
119123

@@ -172,6 +176,7 @@ describe('OrganizationMembers', () => {
172176
fixtures.clerk.organization?.getRoles.mockRejectedValue(null);
173177

174178
const { container, queryByText, queryAllByRole } = render(<OrganizationMembers />, { wrapper });
179+
175180
await waitForLoadingCompleted(container);
176181

177182
expect(fixtures.clerk.organization?.getMemberships).toHaveBeenCalled();
@@ -208,6 +213,7 @@ describe('OrganizationMembers', () => {
208213
fixtures.clerk.organization?.getRoles.mockRejectedValue(null);
209214

210215
const { container, getByText } = render(<OrganizationMembers />, { wrapper });
216+
211217
await waitForLoadingCompleted(container);
212218

213219
expect(fixtures.clerk.organization?.getMemberships).toHaveBeenCalled();
@@ -315,12 +321,8 @@ describe('OrganizationMembers', () => {
315321
}),
316322
);
317323

318-
await runFakeTimers(async () => {
319-
const { getByText } = render(<OrganizationMembers />, { wrapper });
320-
await waitFor(() => {
321-
expect(getByText('2')).toBeInTheDocument();
322-
});
323-
});
324+
const { findByText } = render(<OrganizationMembers />, { wrapper });
325+
expect(await findByText('2')).toBeInTheDocument();
324326
});
325327

326328
it.todo('removes member from organization when clicking the respective button on a user row');
@@ -359,17 +361,16 @@ describe('OrganizationMembers', () => {
359361
}),
360362
);
361363

362-
const { container, getByRole, getByText } = render(<OrganizationMembers />, { wrapper });
364+
const { container, getByRole, getByText, findByText } = render(<OrganizationMembers />, { wrapper });
363365

364366
await waitForLoadingCompleted(container);
365367
await userEvent.click(getByRole('tab', { name: 'Invitations' }));
366368

367-
expect(fixtures.clerk.organization?.getInvitations).toHaveBeenCalled();
368-
369-
expect(getByText('[email protected]')).toBeInTheDocument();
369+
expect(await findByText('[email protected]')).toBeInTheDocument();
370370
expect(getByText('Admin')).toBeInTheDocument();
371371
expect(getByText('[email protected]')).toBeInTheDocument();
372372
expect(getByText('Member')).toBeInTheDocument();
373+
expect(fixtures.clerk.organization?.getInvitations).toHaveBeenCalled();
373374
});
374375

375376
it('changes tab and renders pending requests', async () => {
@@ -453,6 +454,7 @@ describe('OrganizationMembers', () => {
453454
);
454455

455456
const { container, getByText } = render(<OrganizationMembers />, { wrapper });
457+
456458
await waitForLoadingCompleted(container);
457459

458460
expect(fixtures.clerk.organization?.getMemberships).toHaveBeenCalled();

packages/clerk-js/src/ui/components/OrganizationProfile/__tests__/OrganizationProfile.test.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ describe('OrganizationProfile', () => {
1616
});
1717

1818
const { getByText } = render(<OrganizationProfile />, { wrapper });
19-
expect(getByText('Org1')).toBeDefined();
20-
expect(getByText('Members')).toBeDefined();
21-
expect(getByText('Settings')).toBeDefined();
19+
expect(getByText('Org1')).toBeInTheDocument();
20+
expect(getByText('Members')).toBeInTheDocument();
21+
expect(getByText('Settings')).toBeInTheDocument();
2222
});
2323

2424
it('includes custom nav items', async () => {
@@ -47,11 +47,11 @@ describe('OrganizationProfile', () => {
4747
props.setProps({ customPages });
4848

4949
const { getByText } = render(<OrganizationProfile />, { wrapper });
50-
expect(getByText('Org1')).toBeDefined();
51-
expect(getByText('Members')).toBeDefined();
52-
expect(getByText('Settings')).toBeDefined();
53-
expect(getByText('Custom1')).toBeDefined();
54-
expect(getByText('ExternalLink')).toBeDefined();
50+
expect(getByText('Org1')).toBeInTheDocument();
51+
expect(getByText('Members')).toBeInTheDocument();
52+
expect(getByText('Settings')).toBeInTheDocument();
53+
expect(getByText('Custom1')).toBeInTheDocument();
54+
expect(getByText('ExternalLink')).toBeInTheDocument();
5555
});
5656

5757
it('removes member nav item if user is lacking permissions', async () => {

0 commit comments

Comments
 (0)