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
12jest.mock('../../../start/platforms/android/gradle', () => ({
13  assembleAsync: jest.fn(async () => {}),
14  installAsync: jest.fn(async () => {}),
15}));
16
17jest.mock('../resolveDevice', () => ({
18  resolveDeviceAsync: jest.fn(async () => ({
19    device: {
20      name: 'mock',
21      pid: '123',
22    },
23  })),
24}));
25
26jest.mock('../../../utils/env', () => ({
27  env: {
28    CI: false,
29  },
30}));
31
32jest.mock('../../startBundler', () => ({
33  startBundlerAsync: jest.fn(() => ({
34    startAsync: jest.fn(),
35    getDefaultDevServer: jest.fn(() => ({
36      openCustomRuntimeAsync: jest.fn(),
37    })),
38  })),
39}));
40
41describe(resolveOptionsAsync, () => {
42  afterEach(() => vol.reset());
43
44  it(`runs android`, async () => {
45    vol.fromJSON(rnFixture, '/');
46
47    await runAndroidAsync('/', {});
48
49    expect(assembleAsync).toBeCalledWith('/android', {
50      appName: 'app',
51      buildCache: false,
52      port: 8081,
53      variant: 'debug',
54    });
55
56    expect(installAsync).toBeCalledWith('/android', {
57      appName: 'app',
58      port: 8081,
59      variant: 'debug',
60    });
61  });
62});
63