UNPKG

react-native-integrate

Version:

Automate integration of additional code into React Native projects

63 lines (60 loc) 3.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); require('../../../../mocks/mockAll'); const mockSearchReplaceAllFiles = jest.spyOn(require('../../../../../utils/searchReplaceAllFiles'), 'searchReplaceAllFiles'); const path_1 = __importDefault(require("path")); const getProjectPath_1 = require("../../../../../utils/getProjectPath"); const importAndroidAppId_1 = require("../../../../../utils/upgrade/android/importAndroidAppId"); const mockFs_1 = require("../../../../mocks/mockFs"); describe('importAndroidAppId', () => { it('should get app id', async () => { mockFs_1.mockFs.writeFileSync('/oldProject/android/app/build.gradle', ` ... compileSdkVersion rootProject.ext.compileSdkVersion namespace "com.testapp" defaultConfig { applicationId "com.testapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion ...`); mockFs_1.mockFs.writeFileSync(path_1.default.join((0, getProjectPath_1.getProjectPath)(), 'android/app/build.gradle'), ` ... compileSdkVersion rootProject.ext.compileSdkVersion namespace "com.newapp" defaultConfig { applicationId "com.newapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion ...`); const importGetter = (0, importAndroidAppId_1.importAndroidAppId)('/oldProject'); expect(importGetter).toBeTruthy(); expect(importGetter.value).toEqual('com.testapp'); mockSearchReplaceAllFiles.mockImplementationOnce(() => 1); await importGetter.apply(); expect(mockSearchReplaceAllFiles).toHaveBeenCalledWith(path_1.default.join((0, getProjectPath_1.getProjectPath)(), 'android'), 'com\\.newapp', 'com.testapp', false); mockSearchReplaceAllFiles.mockClear(); }); it('should handle errors', () => { mockFs_1.mockFs.setReadPermission(false); const importGetter = (0, importAndroidAppId_1.importAndroidAppId)('/oldProject'); expect(importGetter).toBeNull(); }); it('should handle not finding app id', () => { mockFs_1.mockFs.writeFileSync('/oldProject/android/app/build.gradle', 'applicationId "com.testapp"'); mockFs_1.mockFs.writeFileSync(path_1.default.join((0, getProjectPath_1.getProjectPath)(), 'android/app/build.gradle'), 'random'); const importGetter = (0, importAndroidAppId_1.importAndroidAppId)('/oldProject'); expect(importGetter).toBeNull(); }); it('should not replace when app ids are same', async () => { mockFs_1.mockFs.writeFileSync('/oldProject/android/app/build.gradle', 'applicationId "com.testapp"'); mockFs_1.mockFs.writeFileSync(path_1.default.join((0, getProjectPath_1.getProjectPath)(), 'android/app/build.gradle'), 'applicationId "com.testapp"'); const importGetter = (0, importAndroidAppId_1.importAndroidAppId)('/oldProject'); expect(importGetter).not.toBeFalsy(); expect(importGetter.value).toEqual('com.testapp'); await importGetter.apply(); expect(mockSearchReplaceAllFiles).not.toHaveBeenCalled(); }); });