1*3d6e487dSEvan Baconimport { vol } from 'memfs';
2*3d6e487dSEvan Bacon
3*3d6e487dSEvan Baconimport { promptToClearMalformedNativeProjectsAsync } from '../../prebuild/clearNativeFolder';
4*3d6e487dSEvan Baconimport { prebuildAsync } from '../../prebuild/prebuildAsync';
5*3d6e487dSEvan Baconimport { ensureNativeProjectAsync } from '../ensureNativeProject';
6*3d6e487dSEvan Bacon
7*3d6e487dSEvan Baconjest.mock('../../prebuild/prebuildAsync', () => ({
8*3d6e487dSEvan Bacon  prebuildAsync: jest.fn(),
9*3d6e487dSEvan Bacon}));
10*3d6e487dSEvan Bacon
11*3d6e487dSEvan Baconjest.mock('../../prebuild/clearNativeFolder', () => ({
12*3d6e487dSEvan Bacon  promptToClearMalformedNativeProjectsAsync: jest.fn(),
13*3d6e487dSEvan Bacon}));
14*3d6e487dSEvan Bacon
15*3d6e487dSEvan Bacondescribe(ensureNativeProjectAsync, () => {
16*3d6e487dSEvan Bacon  afterEach(() => vol.reset());
17*3d6e487dSEvan Bacon
18*3d6e487dSEvan Bacon  it(`clears malformed project and regenerates`, async () => {
19*3d6e487dSEvan Bacon    vol.fromJSON({}, '/');
20*3d6e487dSEvan Bacon    await ensureNativeProjectAsync('/', { platform: 'android', install: true });
21*3d6e487dSEvan Bacon    expect(promptToClearMalformedNativeProjectsAsync).toHaveBeenCalledWith('/', ['android']);
22*3d6e487dSEvan Bacon    expect(prebuildAsync).toHaveBeenCalledWith('/', { install: true, platforms: ['android'] });
23*3d6e487dSEvan Bacon  });
24*3d6e487dSEvan Bacon});
25