Merge branch '17754-federated-acct-merge'. Closes #17754.
[arvados-workbench2.git] / src / models / user.test.ts
index d313ef4eb265f5252c491588a9d724245c6fea1e..4fab59d5db8db13008069d96b4252001f31b599c 100644 (file)
@@ -5,13 +5,10 @@
 import { User, getUserDisplayName } from './user';
 
 describe('User', () => {
-
-    beforeEach(() => {
-    });
-
     it('gets the user display name', () => {
         type UserCase = {
             caseName: string;
+            withEmail?: boolean;
             user: User;
             expect: string;
         };
@@ -27,6 +24,18 @@ describe('User', () => {
                 },
                 expect: 'Some User'
             },
+            {
+                caseName: 'Full data available (with email)',
+                withEmail: true,
+                user: {
+                    email: 'someuser@example.com', username: 'someuser',
+                    firstName: 'Some', lastName: 'User',
+                    uuid: 'zzzzz-tpzed-someusersuuid',
+                    ownerUuid: 'zzzzz-tpzed-someusersowneruuid',
+                    prefs: {}, isAdmin: false, isActive: true
+                },
+                expect: 'Some User <<someuser@example.com>>'
+            },
             {
                 caseName: 'Missing first name',
                 user: {
@@ -60,6 +69,18 @@ describe('User', () => {
                 },
                 expect: 'someuser@example.com'
             },
+            {
+                caseName: 'Missing first & last names (with email)',
+                withEmail: true,
+                user: {
+                    email: 'someuser@example.com', username: 'someuser',
+                    firstName: '', lastName: '',
+                    uuid: 'zzzzz-tpzed-someusersuuid',
+                    ownerUuid: 'zzzzz-tpzed-someusersowneruuid',
+                    prefs: {}, isAdmin: false, isActive: true
+                },
+                expect: 'someuser@example.com'
+            },
             {
                 caseName: 'Missing first & last names, and email address',
                 user: {
@@ -71,6 +92,18 @@ describe('User', () => {
                 },
                 expect: 'someuser'
             },
+            {
+                caseName: 'Missing first & last names, and email address (with email)',
+                withEmail: true,
+                user: {
+                    email: '', username: 'someuser',
+                    firstName: '', lastName: '',
+                    uuid: 'zzzzz-tpzed-someusersuuid',
+                    ownerUuid: 'zzzzz-tpzed-someusersowneruuid',
+                    prefs: {}, isAdmin: false, isActive: true
+                },
+                expect: 'someuser'
+            },
             {
                 caseName: 'Missing all data (should not happen)',
                 user: {
@@ -84,7 +117,7 @@ describe('User', () => {
             },
         ];
         testCases.forEach(c => {
-            const dispName = getUserDisplayName(c.user);
+            const dispName = getUserDisplayName(c.user, c.withEmail);
             expect(dispName).toEqual(c.expect);
         })
     });