13d6e487dSEvan Baconimport { vol } from 'memfs';
23d6e487dSEvan Bacon
33d6e487dSEvan Baconimport rnFixture from '../../../prebuild/__tests__/fixtures/react-native-project';
43d6e487dSEvan Baconimport { resolveOptionsAsync } from '../resolveOptions';
53d6e487dSEvan Bacon
6c4ef02aeSEvan Baconjest.mock('../../../utils/port');
73d6e487dSEvan Bacon
83d6e487dSEvan Baconjest.mock('../resolveDevice', () => ({
93d6e487dSEvan Bacon  resolveDeviceAsync: jest.fn(async () => ({
103d6e487dSEvan Bacon    device: {
113d6e487dSEvan Bacon      name: 'mock',
123d6e487dSEvan Bacon      pid: '123',
133d6e487dSEvan Bacon    },
143d6e487dSEvan Bacon  })),
153d6e487dSEvan Bacon}));
163d6e487dSEvan Bacon
173d6e487dSEvan Bacondescribe(resolveOptionsAsync, () => {
183d6e487dSEvan Bacon  afterEach(() => vol.reset());
193d6e487dSEvan Bacon
203d6e487dSEvan Bacon  it(`resolves default options`, async () => {
213d6e487dSEvan Bacon    vol.fromJSON(rnFixture, '/');
223d6e487dSEvan Bacon
233d6e487dSEvan Bacon    expect(await resolveOptionsAsync('/', {})).toEqual({
243d6e487dSEvan Bacon      apkVariantDirectory: '/android/app/build/outputs/apk/debug',
253d6e487dSEvan Bacon      appName: 'app',
263d6e487dSEvan Bacon      buildCache: false,
273d6e487dSEvan Bacon      buildType: 'debug',
283d6e487dSEvan Bacon      device: {
293d6e487dSEvan Bacon        device: {
303d6e487dSEvan Bacon          name: 'mock',
313d6e487dSEvan Bacon          pid: '123',
323d6e487dSEvan Bacon        },
333d6e487dSEvan Bacon      },
343d6e487dSEvan Bacon      flavors: [],
353d6e487dSEvan Bacon      install: false,
363d6e487dSEvan Bacon      launchActivity: 'com.bacon.mydevicefamilyproject/.MainActivity',
373d6e487dSEvan Bacon      mainActivity: '.MainActivity',
383d6e487dSEvan Bacon      packageName: 'com.bacon.mydevicefamilyproject',
393d6e487dSEvan Bacon      port: 8081,
403d6e487dSEvan Bacon      shouldStartBundler: true,
413d6e487dSEvan Bacon      variant: 'debug',
423d6e487dSEvan Bacon    });
433d6e487dSEvan Bacon  });
443d6e487dSEvan Bacon  it(`resolves complex options`, async () => {
453d6e487dSEvan Bacon    vol.fromJSON(rnFixture, '/');
463d6e487dSEvan Bacon
473d6e487dSEvan Bacon    expect(
483d6e487dSEvan Bacon      await resolveOptionsAsync('/', {
493d6e487dSEvan Bacon        buildCache: true,
503d6e487dSEvan Bacon        bundler: true,
513d6e487dSEvan Bacon        device: 'search',
523d6e487dSEvan Bacon        install: true,
53*47d62600SKudo Chien        port: 8081,
543d6e487dSEvan Bacon        variant: 'firstSecondThird',
553d6e487dSEvan Bacon      })
563d6e487dSEvan Bacon    ).toEqual({
573d6e487dSEvan Bacon      apkVariantDirectory: '/android/app/build/outputs/apk/second/third/first',
583d6e487dSEvan Bacon      appName: 'app',
593d6e487dSEvan Bacon      buildCache: true,
603d6e487dSEvan Bacon      buildType: 'first',
613d6e487dSEvan Bacon      device: {
623d6e487dSEvan Bacon        device: {
633d6e487dSEvan Bacon          name: 'mock',
643d6e487dSEvan Bacon          pid: '123',
653d6e487dSEvan Bacon        },
663d6e487dSEvan Bacon      },
673d6e487dSEvan Bacon      flavors: ['second', 'third'],
683d6e487dSEvan Bacon      install: true,
693d6e487dSEvan Bacon      launchActivity: 'com.bacon.mydevicefamilyproject/.MainActivity',
703d6e487dSEvan Bacon      mainActivity: '.MainActivity',
713d6e487dSEvan Bacon      packageName: 'com.bacon.mydevicefamilyproject',
72*47d62600SKudo Chien      port: 8081,
733d6e487dSEvan Bacon      shouldStartBundler: true,
743d6e487dSEvan Bacon      variant: 'firstSecondThird',
753d6e487dSEvan Bacon    });
763d6e487dSEvan Bacon  });
773d6e487dSEvan Bacon});
78