1*eeffdb10STomasz Sapetaimport path from 'path'; 2*eeffdb10STomasz Sapetaimport spawnAsync from '@expo/spawn-async'; 3*eeffdb10STomasz Sapeta 4*eeffdb10STomasz Sapetaimport { getExpoRepositoryRootDir } from './Directories'; 5*eeffdb10STomasz Sapeta 6*eeffdb10STomasz Sapetaconst ANDROID_DIR = path.join(getExpoRepositoryRootDir(), 'android'); 7*eeffdb10STomasz Sapeta 8*eeffdb10STomasz Sapetaexport async function runAndroidTestsAsync( 9*eeffdb10STomasz Sapeta pathToAppApk: string, 10*eeffdb10STomasz Sapeta pathToTestApk: string 11*eeffdb10STomasz Sapeta): Promise<void> { 12*eeffdb10STomasz Sapeta await spawnAsync( 13*eeffdb10STomasz Sapeta 'gcloud', 14*eeffdb10STomasz Sapeta [ 15*eeffdb10STomasz Sapeta 'firebase', 16*eeffdb10STomasz Sapeta 'test', 17*eeffdb10STomasz Sapeta 'android', 18*eeffdb10STomasz Sapeta 'run', 19*eeffdb10STomasz Sapeta '--type', 20*eeffdb10STomasz Sapeta 'instrumentation', 21*eeffdb10STomasz Sapeta '--app', 22*eeffdb10STomasz Sapeta pathToAppApk, 23*eeffdb10STomasz Sapeta '--test', 24*eeffdb10STomasz Sapeta pathToTestApk, 25*eeffdb10STomasz Sapeta '--device', 26*eeffdb10STomasz Sapeta 'model=Nexus6,version=25,locale=en,orientation=portrait', 27*eeffdb10STomasz Sapeta ], 28*eeffdb10STomasz Sapeta { 29*eeffdb10STomasz Sapeta stdio: 'inherit', 30*eeffdb10STomasz Sapeta } 31*eeffdb10STomasz Sapeta ); 32*eeffdb10STomasz Sapeta} 33*eeffdb10STomasz Sapeta 34*eeffdb10STomasz Sapetaexport async function buildLocalAndroidAndRunTestAsync( 35*eeffdb10STomasz Sapeta env: { [key: string]: any } = {} 36*eeffdb10STomasz Sapeta): Promise<void> { 37*eeffdb10STomasz Sapeta await spawnAsync('./gradlew', [':app:assembleDebug'], { 38*eeffdb10STomasz Sapeta cwd: ANDROID_DIR, 39*eeffdb10STomasz Sapeta env: { 40*eeffdb10STomasz Sapeta ...process.env, 41*eeffdb10STomasz Sapeta ...env, 42*eeffdb10STomasz Sapeta }, 43*eeffdb10STomasz Sapeta }); 44*eeffdb10STomasz Sapeta 45*eeffdb10STomasz Sapeta await spawnAsync('./gradlew', [':app:assembleDebugAndroidTest'], { 46*eeffdb10STomasz Sapeta cwd: ANDROID_DIR, 47*eeffdb10STomasz Sapeta env: { 48*eeffdb10STomasz Sapeta ...process.env, 49*eeffdb10STomasz Sapeta ...env, 50*eeffdb10STomasz Sapeta }, 51*eeffdb10STomasz Sapeta }); 52*eeffdb10STomasz Sapeta 53*eeffdb10STomasz Sapeta return await runAndroidTestsAsync( 54*eeffdb10STomasz Sapeta path.join(ANDROID_DIR, 'app/build/outputs/apk/debug/app-debug.apk'), 55*eeffdb10STomasz Sapeta path.join(ANDROID_DIR, 'app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk') 56*eeffdb10STomasz Sapeta ); 57*eeffdb10STomasz Sapeta} 58