UNPKG

react-native-integrate

Version:

Automate integration of additional code into React Native projects

42 lines (41 loc) 3.18 kB
"use strict"; 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;'); }); });