@@ -6,10 +6,12 @@ import {
6
6
getUserForId ,
7
7
getUserIsActive ,
8
8
getCustomProfileFieldsForUser ,
9
+ getDisplayEmailForUser ,
9
10
} from '../userSelectors' ;
10
11
import * as eg from '../../__tests__/lib/exampleData' ;
11
12
import { CustomProfileFieldType } from '../../api/modelTypes' ;
12
13
import { randInt , randString } from '../../utils/misc' ;
14
+ import { EmailAddressVisibility } from '../../api/permissionsTypes' ;
13
15
14
16
describe ( 'getAllUsersByEmail' , ( ) => {
15
17
test ( 'return users mapped by their email' , ( ) => {
@@ -290,3 +292,45 @@ describe('getCustomProfileFieldsForUser', () => {
290
292
) . toMatchObject ( [ { fieldId : 1 } , { fieldId : 3 } ] ) ;
291
293
} ) ;
292
294
} ) ;
295
+
296
+ describe ( 'getDisplayEmailForUser' , ( ) => {
297
+ const mkUser = fields => ( { ...eg . otherUser , ...fields } ) ;
298
+
299
+ test ( 'visibility is admin, no delivery_email' , ( ) => {
300
+ const realm = eg . realmState ( { emailAddressVisibility : EmailAddressVisibility . Admins } ) ;
301
+ // eslint-disable-next-line no-unused-vars
302
+ const { delivery_email, ...user } = eg . otherUser ;
303
+ expect ( getDisplayEmailForUser ( realm , user ) ) . toBeNull ( ) ;
304
+ } ) ;
305
+
306
+ test ( 'email visibility is everyone, no delivery_email' , ( ) => {
307
+ const realm = eg . realmState ( { emailAddressVisibility : EmailAddressVisibility . Everyone } ) ;
308
+ // eslint-disable-next-line no-unused-vars
309
+ const { delivery_email, ...user } = eg . otherUser ;
310
+ expect ( getDisplayEmailForUser ( realm , user ) ) . toEqual ( eg . otherUser . email ) ;
311
+ } ) ;
312
+
313
+ test ( 'email visibility is everyone, delivery_email is null' , ( ) => {
314
+ const realm = eg . realmState ( { emailAddressVisibility : EmailAddressVisibility . Everyone } ) ;
315
+ const user = mkUser ( { delivery_email : null } ) ;
316
+ expect ( getDisplayEmailForUser ( realm , user ) ) . toBeNull ( ) ;
317
+ } ) ;
318
+
319
+ test ( 'email visibility is everyone, delivery_email is set' , ( ) => {
320
+ const realm = eg . realmState ( { emailAddressVisibility : EmailAddressVisibility . Everyone } ) ;
321
+ const user = mkUser ( {
322
+ delivery_email :
'[email protected] ' ,
323
+
324
+ } ) ;
325
+ expect ( getDisplayEmailForUser ( realm , user ) ) . toEqual ( '[email protected] ' ) ;
326
+ } ) ;
327
+
328
+ test ( 'email visibility is admins, delivery_email is set' , ( ) => {
329
+ const realm = eg . realmState ( { emailAddressVisibility : EmailAddressVisibility . Admins } ) ;
330
+ const user = mkUser ( {
331
+ delivery_email :
'[email protected] ' ,
332
+
333
+ } ) ;
334
+ expect ( getDisplayEmailForUser ( realm , user ) ) . toEqual ( '[email protected] ' ) ;
335
+ } ) ;
336
+ } ) ;
0 commit comments