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