1082815dcSEvan Baconimport { ExpoConfig } from '@expo/config'; 2082815dcSEvan Baconimport fs from 'fs'; 3082815dcSEvan Baconimport { vol } from 'memfs'; 4082815dcSEvan Baconimport path from 'path'; 5082815dcSEvan Bacon 6*8a424bebSJames Ideimport rnFixture from './fixtures/react-native-project'; 7082815dcSEvan Baconimport { withGradleProperties } from '../android-plugins'; 8082815dcSEvan Baconimport { evalModsAsync } from '../mod-compiler'; 9082815dcSEvan Baconimport { getAndroidModFileProviders, withAndroidBaseMods } from '../withAndroidBaseMods'; 10082815dcSEvan Bacon 11082815dcSEvan Baconjest.mock('fs'); 12082815dcSEvan Bacon 13082815dcSEvan Bacondescribe(withGradleProperties, () => { 14082815dcSEvan Bacon const projectRoot = '/app'; 15082815dcSEvan Bacon 16082815dcSEvan Bacon beforeEach(async () => { 17ed3bd27bSEvan Bacon vol.fromJSON(rnFixture, projectRoot); 18082815dcSEvan Bacon }); 19082815dcSEvan Bacon 20082815dcSEvan Bacon afterEach(() => { 21082815dcSEvan Bacon vol.reset(); 22082815dcSEvan Bacon }); 23082815dcSEvan Bacon 24082815dcSEvan Bacon it(`is passed gradle.properties`, async () => { 25082815dcSEvan Bacon let config: ExpoConfig = { 26082815dcSEvan Bacon name: 'foobar', 27082815dcSEvan Bacon slug: 'foobar', 28082815dcSEvan Bacon }; 29082815dcSEvan Bacon 30082815dcSEvan Bacon config = withGradleProperties(config, (config) => { 31082815dcSEvan Bacon config.modResults.push({ type: 'comment', value: 'expo-test' }); 32082815dcSEvan Bacon config.modResults.push({ type: 'empty' }); 33082815dcSEvan Bacon config.modResults.push({ type: 'property', key: 'foo', value: 'bar' }); 34082815dcSEvan Bacon config.modResults.push({ type: 'empty' }); 35082815dcSEvan Bacon config.modResults.push({ type: 'comment', value: 'end-expo-test' }); 36082815dcSEvan Bacon return config; 37082815dcSEvan Bacon }); 38082815dcSEvan Bacon config = withAndroidBaseMods(config, { 39082815dcSEvan Bacon providers: { 40082815dcSEvan Bacon gradleProperties: getAndroidModFileProviders().gradleProperties, 41082815dcSEvan Bacon }, 42082815dcSEvan Bacon }); 43082815dcSEvan Bacon 44082815dcSEvan Bacon await evalModsAsync(config, { 45082815dcSEvan Bacon projectRoot, 46082815dcSEvan Bacon platforms: ['android'], 47082815dcSEvan Bacon assertMissingModProviders: true, 48082815dcSEvan Bacon }); 49082815dcSEvan Bacon 50082815dcSEvan Bacon const contents = fs.readFileSync(path.join(projectRoot, 'android/gradle.properties'), 'utf8'); 51082815dcSEvan Bacon expect(contents.endsWith('# expo-test\n\nfoo=bar\n\n# end-expo-test')).toBe(true); 52082815dcSEvan Bacon }); 53082815dcSEvan Bacon}); 54