1
1
import type { MembershipRole , OrganizationInvitationResource } from '@clerk/types' ;
2
2
import { describe } from '@jest/globals' ;
3
3
import { waitFor } from '@testing-library/dom' ;
4
- import { act } from '@testing-library/react' ;
5
4
import React from 'react' ;
6
5
7
6
import { ClerkAPIResponseError } from '../../../../core/resources' ;
@@ -15,12 +14,16 @@ describe('InviteMembersPage', () => {
15
14
it ( 'renders the component' , async ( ) => {
16
15
const { wrapper, fixtures } = await createFixtures ( f => {
17
16
f . withOrganizations ( ) ;
18
- f . withUser ( { email_addresses :
[ '[email protected] ' ] , organization_memberships :
[ { name :
'Org1' , role :
'admin' } ] } ) ;
17
+ f . withUser ( {
18
+ email_addresses :
[ '[email protected] ' ] ,
19
+ organization_memberships : [ { name : 'Org1' , role : 'admin' } ] ,
20
+ } ) ;
19
21
} ) ;
20
22
21
23
fixtures . clerk . organization ?. getRoles . mockRejectedValue ( null ) ;
22
- const { getByText } = await act ( ( ) => render ( < InviteMembersPage /> , { wrapper } ) ) ;
23
- expect ( getByText ( 'Invite new members to this organization' ) ) . toBeDefined ( ) ;
24
+
25
+ const { findByText } = render ( < InviteMembersPage /> , { wrapper } ) ;
26
+ await waitFor ( async ( ) => expect ( await findByText ( 'Invite new members to this organization' ) ) . toBeInTheDocument ( ) ) ;
24
27
} ) ;
25
28
26
29
describe ( 'Submitting' , ( ) => {
@@ -42,6 +45,7 @@ describe('InviteMembersPage', () => {
42
45
43
46
await userEvent . click ( getByRole ( 'button' , { name : / s e l e c t a n o p t i o n / i } ) ) ;
44
47
await userEvent . click ( getByText ( / ^ m e m b e r $ / i) ) ;
48
+
45
49
expect ( getByRole ( 'button' , { name : 'Send invitations' } ) ) . not . toBeDisabled ( ) ;
46
50
} ) ;
47
51
@@ -61,9 +65,12 @@ describe('InviteMembersPage', () => {
61
65
await userEvent . click ( getByRole ( 'button' , { name : 'Select an option' } ) ) ;
62
66
await userEvent . click ( getByText ( 'Member' ) ) ;
63
67
await userEvent . click ( getByRole ( 'button' , { name : 'Send invitations' } ) ) ;
64
- expect ( fixtures . clerk . organization ?. inviteMembers ) . toHaveBeenCalledWith ( {
65
- emailAddresses :
[ '[email protected] ' ] ,
66
- role : 'basic_member' as MembershipRole ,
68
+
69
+ await waitFor ( ( ) => {
70
+ expect ( fixtures . clerk . organization ?. inviteMembers ) . toHaveBeenCalledWith ( {
71
+ emailAddresses :
[ '[email protected] ' ] ,
72
+ role : 'basic_member' as MembershipRole ,
73
+ } ) ;
67
74
} ) ;
68
75
} ) ;
69
76
@@ -98,9 +105,12 @@ describe('InviteMembersPage', () => {
98
105
await userEvent . click ( getByRole ( 'button' , { name : 'Select an option' } ) ) ;
99
106
await userEvent . click ( getByText ( 'Teacher' ) ) ;
100
107
await userEvent . click ( getByRole ( 'button' , { name : 'Send invitations' } ) ) ;
101
- expect ( fixtures . clerk . organization ?. inviteMembers ) . toHaveBeenCalledWith ( {
102
- emailAddresses :
[ '[email protected] ' ] ,
103
- role : 'org:teacher' as MembershipRole ,
108
+
109
+ await waitFor ( ( ) => {
110
+ expect ( fixtures . clerk . organization ?. inviteMembers ) . toHaveBeenCalledWith ( {
111
+ emailAddresses :
[ '[email protected] ' ] ,
112
+ role : 'org:teacher' as MembershipRole ,
113
+ } ) ;
104
114
} ) ;
105
115
} ) ;
106
116
@@ -123,9 +133,12 @@ describe('InviteMembersPage', () => {
123
133
await userEvent . click ( getByRole ( 'button' , { name : 'Select an option' } ) ) ;
124
134
await userEvent . click ( getByText ( 'Member' ) ) ;
125
135
await userEvent . click ( getByRole ( 'button' , { name : 'Send invitations' } ) ) ;
126
- expect ( fixtures . clerk . organization ?. inviteMembers ) . toHaveBeenCalledWith ( {
127
-
128
- role : 'basic_member' as MembershipRole ,
136
+
137
+ await waitFor ( ( ) => {
138
+ expect ( fixtures . clerk . organization ?. inviteMembers ) . toHaveBeenCalledWith ( {
139
+
140
+ role : 'basic_member' as MembershipRole ,
141
+ } ) ;
129
142
} ) ;
130
143
} ) ;
131
144
@@ -145,9 +158,11 @@ describe('InviteMembersPage', () => {
145
158
await userEvent . click ( getByRole ( 'button' , { name : 'Select an option' } ) ) ;
146
159
await userEvent . click ( getByText ( 'Admin' ) ) ;
147
160
await userEvent . click ( getByRole ( 'button' , { name : 'Send invitations' } ) ) ;
148
- expect ( fixtures . clerk . organization ?. inviteMembers ) . toHaveBeenCalledWith ( {
149
- emailAddresses :
[ '[email protected] ' ] ,
150
- role : 'admin' as MembershipRole ,
161
+ await waitFor ( ( ) => {
162
+ expect ( fixtures . clerk . organization ?. inviteMembers ) . toHaveBeenCalledWith ( {
163
+ emailAddresses :
[ '[email protected] ' ] ,
164
+ role : 'admin' as MembershipRole ,
165
+ } ) ;
151
166
} ) ;
152
167
} ) ;
153
168
0 commit comments