13d6e487dSEvan Bacon/* eslint-env jest */ 23d6e487dSEvan Baconimport fs from 'fs/promises'; 33d6e487dSEvan Bacon 43d6e487dSEvan Baconimport { execute, getLoadedModulesAsync, projectRoot } from './utils'; 53d6e487dSEvan Bacon 63d6e487dSEvan Baconconst originalForceColor = process.env.FORCE_COLOR; 73d6e487dSEvan Baconconst originalCI = process.env.CI; 83d6e487dSEvan Bacon 93d6e487dSEvan BaconbeforeAll(async () => { 103d6e487dSEvan Bacon await fs.mkdir(projectRoot, { recursive: true }); 113d6e487dSEvan Bacon process.env.FORCE_COLOR = '0'; 123d6e487dSEvan Bacon process.env.CI = '1'; 133d6e487dSEvan Bacon}); 143d6e487dSEvan Bacon 153d6e487dSEvan BaconafterAll(() => { 163d6e487dSEvan Bacon process.env.FORCE_COLOR = originalForceColor; 173d6e487dSEvan Bacon process.env.CI = originalCI; 183d6e487dSEvan Bacon}); 193d6e487dSEvan Bacon 203d6e487dSEvan Baconit('loads expected modules by default', async () => { 213d6e487dSEvan Bacon const modules = await getLoadedModulesAsync( 223d6e487dSEvan Bacon `require('../../build/src/run/android').expoRunAndroid` 233d6e487dSEvan Bacon ); 243d6e487dSEvan Bacon expect(modules).toStrictEqual([ 25*4067174dSWill Schurman '../node_modules/ansi-styles/index.js', 263d6e487dSEvan Bacon '../node_modules/arg/index.js', 273d6e487dSEvan Bacon '../node_modules/chalk/source/index.js', 283d6e487dSEvan Bacon '../node_modules/chalk/source/util.js', 293d6e487dSEvan Bacon '../node_modules/has-flag/index.js', 303d6e487dSEvan Bacon '../node_modules/supports-color/index.js', 313d6e487dSEvan Bacon '@expo/cli/build/src/log.js', 323d6e487dSEvan Bacon '@expo/cli/build/src/run/android/index.js', 333d6e487dSEvan Bacon '@expo/cli/build/src/utils/args.js', 343d6e487dSEvan Bacon '@expo/cli/build/src/utils/errors.js', 353d6e487dSEvan Bacon ]); 363d6e487dSEvan Bacon}); 373d6e487dSEvan Bacon 383d6e487dSEvan Baconit('runs `npx expo run:android --help`', async () => { 393d6e487dSEvan Bacon const results = await execute('run:android', '--help'); 403d6e487dSEvan Bacon expect(results.stdout).toMatchInlineSnapshot(` 413d6e487dSEvan Bacon " 423d6e487dSEvan Bacon Description 433d6e487dSEvan Bacon Run the native Android app locally 443d6e487dSEvan Bacon 453d6e487dSEvan Bacon Usage 463d6e487dSEvan Bacon $ npx expo run:android <dir> 473d6e487dSEvan Bacon 483d6e487dSEvan Bacon Options 493d6e487dSEvan Bacon --no-build-cache Clear the native build cache 503d6e487dSEvan Bacon --no-install Skip installing dependencies 513d6e487dSEvan Bacon --no-bundler Skip starting the bundler 523d6e487dSEvan Bacon --variant <name> Build variant. Default: debug 533d6e487dSEvan Bacon -d, --device [device] Device name to run the app on 543d6e487dSEvan Bacon -p, --port <port> Port to start the dev server on. Default: 8081 553d6e487dSEvan Bacon -h, --help Output usage information 563d6e487dSEvan Bacon " 573d6e487dSEvan Bacon `); 583d6e487dSEvan Bacon}); 59