1import { Log } from '../../../log';
2import { AndroidDeviceManager } from '../../../start/platforms/android/AndroidDeviceManager';
3import { resolveDeviceAsync } from '../resolveDevice';
4
5jest.mock('../../../log');
6jest.mock('../../../start/platforms/android/AndroidDeviceManager', () => ({
7  AndroidDeviceManager: {
8    resolveAsync: jest.fn(async () => ({ device: { name: 'mock', pid: '123' } })),
9    resolveFromNameAsync: jest.fn(async () => ({ device: { name: 'mock', pid: '123' } })),
10  },
11}));
12
13describe(resolveDeviceAsync, () => {
14  it(`resolves default device`, async () => {
15    await resolveDeviceAsync();
16    expect(Log.log).not.toBeCalled();
17    expect(AndroidDeviceManager.resolveAsync).toBeCalledWith();
18  });
19  it(`prompts for device`, async () => {
20    await resolveDeviceAsync(true);
21    expect(Log.log).toBeCalledWith(expect.stringContaining('› Using --device mock'));
22    expect(AndroidDeviceManager.resolveAsync).toBeCalledWith({ shouldPrompt: true });
23  });
24  it(`queries device`, async () => {
25    await resolveDeviceAsync('search');
26    expect(Log.log).toBeCalledWith(expect.stringContaining('› Using --device mock'));
27    expect(AndroidDeviceManager.resolveFromNameAsync).toBeCalledWith('search');
28  });
29});
30