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