react-native-builder-bob
Version:
CLI to build JavaScript files for React Native libraries
78 lines (77 loc) • 3.06 kB
JavaScript
;
var _vitest = require("vitest");
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _nodePath = _interopRequireDefault(require("node:path"));
var _removeCodegenAppLevelCode = require("./removeCodegenAppLevelCode");
var _mockFs = _interopRequireDefault(require("mock-fs"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const mockPackageJson = {
codegenConfig: {
outputDir: {
android: 'android/generated',
ios: 'ios/generated'
}
}
};
const mockProjectPath = _nodePath.default.resolve(__dirname, 'mockProject');
(0, _vitest.describe)('patchCodegenAndroidPackage', () => {
(0, _vitest.beforeEach)(() => {
(0, _mockFs.default)({
[mockProjectPath]: {
'package.json': JSON.stringify(mockPackageJson),
'ios': {
generated: {
'RCTAppDependencyProvider.h': '',
'RCTAppDependencyProvider.mm': '',
'RCTModulesConformingToProtocolsProvider.h': '',
'RCTModulesConformingToProtocolsProvider.mm': '',
'RCTThirdPartyComponentsProvider.h': '',
'RCTThirdPartyComponentsProvider.mm': '',
'ReactAppDependencyProvider.podspec': ''
}
},
'android': {
generated: {
'RCTAppDependencyProvider.h': '',
'RCTAppDependencyProvider.mm': '',
'RCTModulesConformingToProtocolsProvider.h': '',
'RCTModulesConformingToProtocolsProvider.mm': '',
'RCTThirdPartyComponentsProvider.h': '',
'RCTThirdPartyComponentsProvider.mm': '',
'ReactAppDependencyProvider.podspec': ''
}
}
}
});
});
(0, _vitest.afterEach)(() => {
_mockFs.default.restore();
});
(0, _vitest.test)('removes the duplicate iOS files', async () => {
await (0, _removeCodegenAppLevelCode.removeCodegenAppLevelCode)(mockProjectPath, mockPackageJson);
(0, _vitest.expect)((await _fsExtra.default.promises.readdir(_nodePath.default.join(mockProjectPath, 'ios', 'generated'))).length).toBe(0);
});
(0, _vitest.test)('removes the unnecessary Android files', async () => {
await (0, _removeCodegenAppLevelCode.removeCodegenAppLevelCode)(mockProjectPath, mockPackageJson);
(0, _vitest.expect)((await _fsExtra.default.promises.readdir(_nodePath.default.join(mockProjectPath, 'android', 'generated'))).length).toBe(0);
});
(0, _vitest.test)("doesn't crash the process when there are no files to remove", async () => {
(0, _mockFs.default)({
[mockProjectPath]: {
'package.json': JSON.stringify(mockPackageJson),
'ios': {
generated: {
someRandomFile: ''
}
},
'android': {
generated: {
someRandomFile: ''
}
}
}
});
await (0, _vitest.expect)((0, _removeCodegenAppLevelCode.removeCodegenAppLevelCode)(mockProjectPath, mockPackageJson)).resolves.not.toThrow();
});
});
//# sourceMappingURL=removeCodegenAppLevelCode.test.js.map