1c4ef02aeSEvan Bacon/* eslint-env jest */ 2c4ef02aeSEvan Baconimport fs from 'fs/promises'; 3c4ef02aeSEvan Bacon 4c4ef02aeSEvan Baconimport { execute, getLoadedModulesAsync, projectRoot } from './utils'; 5c4ef02aeSEvan Bacon 6c4ef02aeSEvan Baconconst originalForceColor = process.env.FORCE_COLOR; 7c4ef02aeSEvan Baconconst originalCI = process.env.CI; 8c4ef02aeSEvan Bacon 9c4ef02aeSEvan BaconbeforeAll(async () => { 10c4ef02aeSEvan Bacon await fs.mkdir(projectRoot, { recursive: true }); 11c4ef02aeSEvan Bacon process.env.FORCE_COLOR = '0'; 12c4ef02aeSEvan Bacon process.env.CI = '1'; 13c4ef02aeSEvan Bacon}); 14c4ef02aeSEvan Bacon 15c4ef02aeSEvan BaconafterAll(() => { 16c4ef02aeSEvan Bacon process.env.FORCE_COLOR = originalForceColor; 17c4ef02aeSEvan Bacon process.env.CI = originalCI; 18c4ef02aeSEvan Bacon}); 19c4ef02aeSEvan Bacon 20c4ef02aeSEvan Baconit('loads expected modules by default', async () => { 21c4ef02aeSEvan Bacon const modules = await getLoadedModulesAsync(`require('../../build/src/run/ios').expoRunIos`); 22c4ef02aeSEvan Bacon expect(modules).toStrictEqual([ 23*4067174dSWill Schurman '../node_modules/ansi-styles/index.js', 24c4ef02aeSEvan Bacon '../node_modules/arg/index.js', 25c4ef02aeSEvan Bacon '../node_modules/chalk/source/index.js', 26c4ef02aeSEvan Bacon '../node_modules/chalk/source/util.js', 27c4ef02aeSEvan Bacon '../node_modules/has-flag/index.js', 28c4ef02aeSEvan Bacon '../node_modules/supports-color/index.js', 29c4ef02aeSEvan Bacon '@expo/cli/build/src/log.js', 30c4ef02aeSEvan Bacon '@expo/cli/build/src/run/ios/index.js', 31c4ef02aeSEvan Bacon '@expo/cli/build/src/utils/args.js', 32c4ef02aeSEvan Bacon '@expo/cli/build/src/utils/errors.js', 33c4ef02aeSEvan Bacon ]); 34c4ef02aeSEvan Bacon}); 35c4ef02aeSEvan Bacon 36c4ef02aeSEvan Baconit('runs `npx expo run:ios --help`', async () => { 37c4ef02aeSEvan Bacon const results = await execute('run:ios', '--help'); 38c4ef02aeSEvan Bacon expect(results.stdout).toMatchInlineSnapshot(` 39c4ef02aeSEvan Bacon " 40c4ef02aeSEvan Bacon Info 41c4ef02aeSEvan Bacon Run the iOS app binary locally 42c4ef02aeSEvan Bacon 43c4ef02aeSEvan Bacon Usage 44c4ef02aeSEvan Bacon $ npx expo run:ios 45c4ef02aeSEvan Bacon 46c4ef02aeSEvan Bacon Options 47c4ef02aeSEvan Bacon --no-build-cache Clear the native derived data before building 48c4ef02aeSEvan Bacon --no-install Skip installing dependencies 49c4ef02aeSEvan Bacon --no-bundler Skip starting the Metro bundler 50c4ef02aeSEvan Bacon --scheme [scheme] Scheme to build 51c4ef02aeSEvan Bacon --configuration <configuration> Xcode configuration to use. Debug or Release. Default: Debug 52c4ef02aeSEvan Bacon -d, --device [device] Device name or UDID to build the app on 53c4ef02aeSEvan Bacon -p, --port <port> Port to start the Metro bundler on. Default: 8081 54c4ef02aeSEvan Bacon -h, --help Usage info 55c4ef02aeSEvan Bacon 56c4ef02aeSEvan Bacon Build for production (unsigned) with the Release configuration: 57c4ef02aeSEvan Bacon $ npx expo run:ios --configuration Release 58c4ef02aeSEvan Bacon " 59c4ef02aeSEvan Bacon `); 60c4ef02aeSEvan Bacon}); 61