react-native-integrate
Version:
Automate integration of additional code into React Native projects
42 lines (41 loc) • 3.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require('../../../../mocks/mockAll');
const escapeRegExp_1 = require("../../../../../utils/escapeRegExp");
const getIosProjectPath_1 = require("../../../../../utils/getIosProjectPath");
const importIosProjectVersion_1 = require("../../../../../utils/upgrade/ios/importIosProjectVersion");
const mockFs_1 = require("../../../../mocks/mockFs");
const mockPbxProjTemplate_1 = require("../../../../mocks/mockPbxProjTemplate");
describe('importIosProjectVersion', () => {
it('should get project version', async () => {
mockFs_1.mockFs.writeFileSync((0, getIosProjectPath_1.getPbxProjectPath)('/oldProject'), mockPbxProjTemplate_1.mockPbxProjTemplate.replace(new RegExp((0, escapeRegExp_1.escapeRegExp)('CURRENT_PROJECT_VERSION = 1'), 'g'), 'CURRENT_PROJECT_VERSION = 5'));
mockFs_1.mockFs.writeFileSync((0, getIosProjectPath_1.getPbxProjectPath)(), mockPbxProjTemplate_1.mockPbxProjTemplate);
const importGetter = (0, importIosProjectVersion_1.importIosProjectVersion)('/oldProject');
expect(importGetter).toBeTruthy();
expect(importGetter.value).toEqual('5');
await importGetter.apply();
expect(mockFs_1.mockFs.readFileSync((0, getIosProjectPath_1.getPbxProjectPath)())).toContain('CURRENT_PROJECT_VERSION = 5');
});
it('should handle errors', () => {
mockFs_1.mockFs.setReadPermission(false);
const importGetter = (0, importIosProjectVersion_1.importIosProjectVersion)('/oldProject');
expect(importGetter).toBeNull();
});
it('should handle not finding project version', () => {
mockFs_1.mockFs.writeFileSync((0, getIosProjectPath_1.getPbxProjectPath)('/oldProject'), mockPbxProjTemplate_1.mockPbxProjTemplate.replace(new RegExp((0, escapeRegExp_1.escapeRegExp)('CURRENT_PROJECT_VERSION = 1'), 'g'), 'random = "random"'));
const importGetter = (0, importIosProjectVersion_1.importIosProjectVersion)('/oldProject');
expect(importGetter).toBeNull();
});
it('should get project version from variable', async () => {
mockFs_1.mockFs.writeFileSync((0, getIosProjectPath_1.getPbxProjectPath)('/oldProject'), mockPbxProjTemplate_1.mockPbxProjTemplate
.replace(new RegExp((0, escapeRegExp_1.escapeRegExp)('CURRENT_PROJECT_VERSION = 1'), 'g'), 'CURRENT_PROJECT_VERSION = "${VARIABLE}"')
.replace(new RegExp((0, escapeRegExp_1.escapeRegExp)('ALWAYS_SEARCH_USER_PATHS = NO;'), 'g'), 'VARIABLE = 5;'));
mockFs_1.mockFs.writeFileSync((0, getIosProjectPath_1.getPbxProjectPath)(), mockPbxProjTemplate_1.mockPbxProjTemplate);
const importGetter = (0, importIosProjectVersion_1.importIosProjectVersion)('/oldProject');
expect(importGetter).toBeTruthy();
expect(importGetter.value).toEqual('"${VARIABLE}" (5)');
await importGetter.apply();
expect(mockFs_1.mockFs.readFileSync((0, getIosProjectPath_1.getPbxProjectPath)())).toContain('CURRENT_PROJECT_VERSION = "${VARIABLE}"');
expect(mockFs_1.mockFs.readFileSync((0, getIosProjectPath_1.getPbxProjectPath)())).toContain('VARIABLE = 5;');
});
});