1import { vol } from 'memfs'; 2 3import rnFixture from '../../../prebuild/__tests__/fixtures/react-native-project'; 4import { assembleAsync, installAsync } from '../../../start/platforms/android/gradle'; 5import { resolveOptionsAsync } from '../resolveOptions'; 6import { runAndroidAsync } from '../runAndroidAsync'; 7 8jest.mock('../../../log'); 9 10jest.mock('../../../utils/port', () => ({ 11 resolvePortAsync: jest.fn( 12 async (root, { defaultPort, fallbackPort }) => defaultPort ?? fallbackPort 13 ), 14})); 15 16jest.mock('../../../start/platforms/android/gradle', () => ({ 17 assembleAsync: jest.fn(async () => {}), 18 installAsync: jest.fn(async () => {}), 19})); 20 21jest.mock('../resolveDevice', () => ({ 22 resolveDeviceAsync: jest.fn(async () => ({ 23 device: { 24 name: 'mock', 25 pid: '123', 26 }, 27 })), 28})); 29 30jest.mock('../../../utils/env', () => ({ 31 env: { 32 CI: false, 33 }, 34})); 35 36jest.mock('../../startBundler', () => ({ 37 startBundlerAsync: jest.fn(() => ({ 38 startAsync: jest.fn(), 39 getDefaultDevServer: jest.fn(() => ({ 40 openCustomRuntimeAsync: jest.fn(), 41 })), 42 })), 43})); 44 45describe(resolveOptionsAsync, () => { 46 afterEach(() => vol.reset()); 47 48 it(`runs android`, async () => { 49 vol.fromJSON(rnFixture, '/'); 50 51 await runAndroidAsync('/', {}); 52 53 expect(assembleAsync).toBeCalledWith('/android', { 54 appName: 'app', 55 buildCache: false, 56 port: 8081, 57 variant: 'debug', 58 }); 59 60 expect(installAsync).toBeCalledWith('/android', { 61 appName: 'app', 62 port: 8081, 63 variant: 'debug', 64 }); 65 }); 66}); 67