1082815dcSEvan Baconimport { vol } from 'memfs'; 2082815dcSEvan Baconimport * as path from 'path'; 3082815dcSEvan Bacon 4*ed3bd27bSEvan Baconimport rnFixture from '../../plugins/__tests__/fixtures/react-native-project'; 5082815dcSEvan Baconimport { createBuildSourceFile } from '../XcodeProjectFile'; 6082815dcSEvan Baconimport { getPbxproj } from '../utils/Xcodeproj'; 7082815dcSEvan Bacon 8082815dcSEvan Baconjest.mock('fs'); 9082815dcSEvan Bacon 10082815dcSEvan Bacondescribe(createBuildSourceFile, () => { 11082815dcSEvan Bacon const projectRoot = '/alpha'; 12082815dcSEvan Bacon beforeAll(async () => { 13*ed3bd27bSEvan Bacon vol.fromJSON(rnFixture, projectRoot); 14082815dcSEvan Bacon }); 15082815dcSEvan Bacon 16082815dcSEvan Bacon afterAll(() => { 17082815dcSEvan Bacon vol.reset(); 18082815dcSEvan Bacon }); 19082815dcSEvan Bacon 20082815dcSEvan Bacon it(`creates a source file`, () => { 21082815dcSEvan Bacon const project = getPbxproj(projectRoot); 22082815dcSEvan Bacon // perform action 23082815dcSEvan Bacon createBuildSourceFile({ 24082815dcSEvan Bacon project, 25082815dcSEvan Bacon nativeProjectRoot: path.join(projectRoot, 'ios'), 26*ed3bd27bSEvan Bacon filePath: 'HelloWorld/myfile.swift', 27082815dcSEvan Bacon fileContents: '// hello', 28082815dcSEvan Bacon }); 29082815dcSEvan Bacon 30*ed3bd27bSEvan Bacon expect(project.hasFile('HelloWorld/myfile.swift')).toStrictEqual({ 31082815dcSEvan Bacon explicitFileType: undefined, 32082815dcSEvan Bacon fileEncoding: 4, 33082815dcSEvan Bacon includeInIndex: 0, 34082815dcSEvan Bacon isa: 'PBXFileReference', 35082815dcSEvan Bacon lastKnownFileType: 'sourcecode.swift', 36082815dcSEvan Bacon name: '"myfile.swift"', 37*ed3bd27bSEvan Bacon path: '"HelloWorld/myfile.swift"', 38082815dcSEvan Bacon sourceTree: '"<group>"', 39082815dcSEvan Bacon }); 40082815dcSEvan Bacon 41*ed3bd27bSEvan Bacon expect(vol.existsSync(path.join(projectRoot, 'ios/HelloWorld/myfile.swift'))).toBe(true); 42082815dcSEvan Bacon }); 43082815dcSEvan Bacon}); 44