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