react-native-integrate
Version:
Automate integration of additional code into React Native projects
63 lines (60 loc) • 3.31 kB
JavaScript
;
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();
});
});