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