1import { 2 withUserTrackingPermission, 3 DEFAULT_NSUserTrackingUsageDescription, 4} from '../withTrackingTransparency'; 5 6const configWithDefaultNSUserTrackingUsageDescription = { 7 slug: 'testSlug', 8 name: 'testName', 9 ios: { 10 infoPlist: { 11 NSUserTrackingUsageDescription: DEFAULT_NSUserTrackingUsageDescription, 12 }, 13 }, 14}; 15 16const configWithCustomNSUserTrackingUsageDescription = { 17 slug: 'testSlug', 18 name: 'testName', 19 ios: { 20 infoPlist: { 21 NSUserTrackingUsageDescription: 'my custom string', 22 }, 23 }, 24}; 25 26describe('Expo Tracking Transparency', () => { 27 it('sets default `NSUserTrackingUsageDescription` permission message in the config', () => { 28 expect( 29 withUserTrackingPermission({ 30 slug: 'testSlug', 31 name: 'testName', 32 }) 33 ).toMatchObject(configWithDefaultNSUserTrackingUsageDescription); 34 }); 35 36 it('does not add duplicate `NSUserTrackingUsageDescription` permission message in the config', () => { 37 expect( 38 withUserTrackingPermission({ 39 slug: 'testSlug', 40 name: 'testName', 41 ios: { 42 infoPlist: { 43 NSUserTrackingUsageDescription: DEFAULT_NSUserTrackingUsageDescription, 44 }, 45 }, 46 }) 47 ).toMatchObject(configWithDefaultNSUserTrackingUsageDescription); 48 }); 49 50 it('overwrites existing `NSUserTrackingUsageDescription` permission message in the config', () => { 51 expect( 52 withUserTrackingPermission( 53 { 54 slug: 'testSlug', 55 name: 'testName', 56 ios: { 57 infoPlist: { 58 NSUserTrackingUsageDescription: DEFAULT_NSUserTrackingUsageDescription, 59 }, 60 }, 61 }, 62 { 63 userTrackingPermission: 'my custom string', 64 } 65 ) 66 ).toMatchObject(configWithCustomNSUserTrackingUsageDescription); 67 }); 68}); 69