1import { vol } from 'memfs'; 2import * as path from 'path'; 3 4import rnFixture from '../../plugins/__tests__/fixtures/react-native-project'; 5import { createBuildSourceFile } from '../XcodeProjectFile'; 6import { getPbxproj } from '../utils/Xcodeproj'; 7 8jest.mock('fs'); 9 10describe(createBuildSourceFile, () => { 11 const projectRoot = '/alpha'; 12 beforeAll(async () => { 13 vol.fromJSON(rnFixture, projectRoot); 14 }); 15 16 afterAll(() => { 17 vol.reset(); 18 }); 19 20 it(`creates a source file`, () => { 21 const project = getPbxproj(projectRoot); 22 // perform action 23 createBuildSourceFile({ 24 project, 25 nativeProjectRoot: path.join(projectRoot, 'ios'), 26 filePath: 'HelloWorld/myfile.swift', 27 fileContents: '// hello', 28 }); 29 30 expect(project.hasFile('HelloWorld/myfile.swift')).toStrictEqual({ 31 explicitFileType: undefined, 32 fileEncoding: 4, 33 includeInIndex: 0, 34 isa: 'PBXFileReference', 35 lastKnownFileType: 'sourcecode.swift', 36 name: '"myfile.swift"', 37 path: '"HelloWorld/myfile.swift"', 38 sourceTree: '"<group>"', 39 }); 40 41 expect(vol.existsSync(path.join(projectRoot, 'ios/HelloWorld/myfile.swift'))).toBe(true); 42 }); 43}); 44