1*ed3bd27bSEvan Baconimport rnFixture from '../../plugins/__tests__/fixtures/react-native-project'; 2*ed3bd27bSEvan Baconimport * as XML from '../../utils/XML'; 3082815dcSEvan Baconimport { getAllowBackup, getAllowBackupFromManifest, setAllowBackup } from '../AllowBackup'; 4*ed3bd27bSEvan Baconimport { AndroidManifest } from '../Manifest'; 5082815dcSEvan Bacon 6*ed3bd27bSEvan Baconasync function getFixtureManifestAsync() { 7*ed3bd27bSEvan Bacon return (await XML.parseXMLAsync( 8*ed3bd27bSEvan Bacon rnFixture['android/app/src/main/AndroidManifest.xml'] 9*ed3bd27bSEvan Bacon )) as AndroidManifest; 10*ed3bd27bSEvan Bacon} 11082815dcSEvan Bacon 12082815dcSEvan Bacondescribe('allowBackup', () => { 13082815dcSEvan Bacon it(`defaults to true`, () => { 14082815dcSEvan Bacon expect(getAllowBackup({})).toBe(true); 15082815dcSEvan Bacon expect(getAllowBackup({ android: { allowBackup: false } })).toBe(false); 16082815dcSEvan Bacon }); 17082815dcSEvan Bacon 18082815dcSEvan Bacon it('sets the allowBackup property to true', async () => { 19*ed3bd27bSEvan Bacon const androidManifestJsonUnaltered = await getFixtureManifestAsync(); 20*ed3bd27bSEvan Bacon let androidManifestJson = await getFixtureManifestAsync(); 21082815dcSEvan Bacon androidManifestJson = await setAllowBackup({}, { ...androidManifestJson }); 22082815dcSEvan Bacon 23082815dcSEvan Bacon const result = getAllowBackupFromManifest(androidManifestJson); 24*ed3bd27bSEvan Bacon // The fixture has `android:allowBackup="false"`, lets test that it did in fact get modified. 25*ed3bd27bSEvan Bacon expect(getAllowBackupFromManifest(androidManifestJsonUnaltered)).not.toEqual(result); 26*ed3bd27bSEvan Bacon 27082815dcSEvan Bacon // Sanity check `getAllowBackupFromManifest` works as expected. 28082815dcSEvan Bacon expect(result).toBe(true); 29082815dcSEvan Bacon }); 30082815dcSEvan Bacon it('sets the allowBackup property to false', async () => { 31*ed3bd27bSEvan Bacon const androidManifestJsonUnaltered = await getFixtureManifestAsync(); 32*ed3bd27bSEvan Bacon let androidManifestJson = await getFixtureManifestAsync(); 33082815dcSEvan Bacon androidManifestJson = await setAllowBackup( 34082815dcSEvan Bacon { android: { allowBackup: false } }, 35082815dcSEvan Bacon androidManifestJson 36082815dcSEvan Bacon ); 37082815dcSEvan Bacon 38082815dcSEvan Bacon const result = getAllowBackupFromManifest(androidManifestJson); 39*ed3bd27bSEvan Bacon 40*ed3bd27bSEvan Bacon expect(androidManifestJsonUnaltered).toEqual(androidManifestJson); 41082815dcSEvan Bacon expect(result).toBe(false); 42082815dcSEvan Bacon }); 43082815dcSEvan Bacon}); 44