1import { vol } from 'memfs';
2
3import { resolveXcodeProject } from '../resolveXcodeProject';
4
5describe(resolveXcodeProject, () => {
6  afterEach(() => vol.reset());
7  it(`resolves xcworkspace with higher priority than xcodeproj`, () => {
8    vol.fromJSON(
9      {
10        'ios/MyProject.xcworkspace': '',
11        'ios/MyProject.xcodeproj': '',
12      },
13      '/'
14    );
15
16    expect(resolveXcodeProject('/')).toEqual({
17      name: '/ios/MyProject.xcworkspace',
18      isWorkspace: true,
19    });
20  });
21  it(`resolves xcodeproj if xcworkspace is not available`, () => {
22    vol.fromJSON(
23      {
24        'ios/MyProject.xcodeproj': '',
25      },
26      '/'
27    );
28
29    expect(resolveXcodeProject('/')).toEqual({
30      name: '/ios/MyProject.xcodeproj',
31      isWorkspace: false,
32    });
33  });
34  it(`throws if neither xcworkspace nor xcodeproj are available`, () => {
35    vol.fromJSON({}, '/');
36
37    expect(() => resolveXcodeProject('/')).toThrowError(
38      'Xcode project not found in project: /. You can generate a project with `npx expo prebuild`'
39    );
40  });
41});
42