@@ -1243,4 +1243,97 @@ describe('People Component Additional Coverage Tests', () => {
1243
1243
// Wait to ensure no errors occur
1244
1244
await new Promise ( ( resolve ) => setTimeout ( resolve , 100 ) ) ;
1245
1245
} ) ;
1246
+ it ( 'handles admin mode transition when admin data is not yet available' , async ( ) => {
1247
+ // Create a mock that will delay the admin data response
1248
+ const delayedAdminMock = {
1249
+ request : {
1250
+ query : ORGANIZATION_ADMINS_LIST ,
1251
+ variables : { id : '' } ,
1252
+ } ,
1253
+ result : {
1254
+ data : {
1255
+ organizations : [
1256
+ {
1257
+ __typename : 'Organization' , // Add typename to match actual response
1258
+ _id : 'org-1' ,
1259
+ admins : [
1260
+ {
1261
+ _id : 'admin1' ,
1262
+ firstName : 'Admin' ,
1263
+ lastName : 'Test' ,
1264
+ email : 'admin@test.com' ,
1265
+ image : null ,
1266
+ createdAt : new Date ( ) . toISOString ( ) ,
1267
+ } ,
1268
+ ] ,
1269
+ } ,
1270
+ ] ,
1271
+ } ,
1272
+ } ,
1273
+ delay : 1000 , // Add a delay to ensure we can switch modes before data arrives
1274
+ } ;
1275
+
1276
+ const membersListMock = {
1277
+ request : {
1278
+ query : ORGANIZATIONS_MEMBER_CONNECTION_LIST ,
1279
+ variables : { orgId : '' , firstName_contains : '' } ,
1280
+ } ,
1281
+ result : {
1282
+ data : {
1283
+ organizationsMemberConnection : {
1284
+ edges : [
1285
+ {
1286
+ _id : 'member1' ,
1287
+ firstName : 'Test' ,
1288
+ lastName : 'Member' ,
1289
+ email : 'member@test.com' ,
1290
+ image : null ,
1291
+ createdAt : new Date ( ) . toISOString ( ) ,
1292
+ } ,
1293
+ ] ,
1294
+ } ,
1295
+ } ,
1296
+ } ,
1297
+ } ;
1298
+
1299
+ render (
1300
+ < MockedProvider
1301
+ addTypename = { false }
1302
+ mocks = { [ membersListMock , delayedAdminMock ] }
1303
+ >
1304
+ < BrowserRouter >
1305
+ < Provider store = { store } >
1306
+ < I18nextProvider i18n = { i18nForTest } >
1307
+ < People />
1308
+ </ I18nextProvider >
1309
+ </ Provider >
1310
+ </ BrowserRouter >
1311
+ </ MockedProvider > ,
1312
+ ) ;
1313
+
1314
+ // Wait for initial members data to load
1315
+ await waitFor ( ( ) => {
1316
+ expect ( screen . getByText ( 'Test Member' ) ) . toBeInTheDocument ( ) ;
1317
+ } ) ;
1318
+
1319
+ // Switch to admin mode before admin data is available
1320
+ userEvent . click ( screen . getByTestId ( 'modeChangeBtn' ) ) ;
1321
+ await waitFor ( ( ) => {
1322
+ userEvent . click ( screen . getByTestId ( 'modeBtn1' ) ) ;
1323
+ } ) ;
1324
+
1325
+ // Initially there should be no members shown as we're waiting for admin data
1326
+ expect ( screen . queryByText ( 'Test Member' ) ) . not . toBeInTheDocument ( ) ;
1327
+
1328
+ // Wait for admin data to load and verify it appears
1329
+ await waitFor (
1330
+ ( ) => {
1331
+ // Check for the admin's name (firstName + lastName)
1332
+ expect ( screen . getByText ( 'Admin Test' ) ) . toBeInTheDocument ( ) ;
1333
+ // Also verify that the admin role is displayed
1334
+ expect ( screen . getByText ( 'Admin' ) ) . toBeInTheDocument ( ) ;
1335
+ } ,
1336
+ { timeout : 2000 } ,
1337
+ ) ;
1338
+ } ) ;
1246
1339
} ) ;
0 commit comments