UNPKG

react-native-integrate

Version:

Automate integration of additional code into React Native projects

114 lines (113 loc) 5.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require('../../../mocks/mockAll'); const getAndroidAppId = jest.spyOn(require('../../../../utils/upgrade/android/importAndroidAppId'), 'importAndroidAppId'); const getAndroidDisplayName = jest.spyOn(require('../../../../utils/upgrade/android/importAndroidDisplayName'), 'importAndroidDisplayName'); const getAndroidLaunchIcon = jest.spyOn(require('../../../../utils/upgrade/android/importAndroidLaunchIcon'), 'importAndroidLaunchIcon'); const getAndroidVersionCode = jest.spyOn(require('../../../../utils/upgrade/android/importAndroidVersionCode'), 'importAndroidVersionCode'); const getAndroidVersionName = jest.spyOn(require('../../../../utils/upgrade/android/importAndroidVersionName'), 'importAndroidVersionName'); const getIosAssets = jest.spyOn(require('../../../../utils/upgrade/ios/importIosAssets'), 'importIosAssets'); const getIosBundleId = jest.spyOn(require('../../../../utils/upgrade/ios/importIosBundleId'), 'importIosBundleId'); const getIosDisplayName = jest.spyOn(require('../../../../utils/upgrade/ios/importIosDisplayName'), 'importIosDisplayName'); const getIosMarketingVersion = jest.spyOn(require('../../../../utils/upgrade/ios/importIosMarketingVersion'), 'importIosMarketingVersion'); const getIosProjectVersion = jest.spyOn(require('../../../../utils/upgrade/ios/importIosProjectVersion'), 'importIosProjectVersion'); const options_1 = require("../../../../options"); const importFromOldProject_1 = require("../../../../utils/upgrade/importFromOldProject"); const mockPrompter_1 = require("../../../mocks/mockPrompter"); const exampleGetter = { id: 'androidAppId', value: 'someAppId', title: 'Android App Id', apply: jest.fn(() => Promise.resolve()), }; describe('importFromOldProject', () => { beforeAll(() => { getAndroidAppId.mockImplementation(() => exampleGetter); getAndroidDisplayName.mockImplementation(() => ({ id: 'androidDisplayName', value: 'someDisplayName', title: 'Android Display Name', apply: jest.fn(() => Promise.resolve()), })); getAndroidLaunchIcon.mockImplementation(() => ({ id: 'androidLaunchIcon', value: 'someIcon', title: 'Android Launch Icon', apply: jest.fn(() => Promise.resolve()), })); getAndroidVersionCode.mockImplementation(() => ({ id: 'androidVersionCode', value: 'someVersionCode', title: 'Android Version Code', apply: jest.fn(() => Promise.resolve()), })); getAndroidVersionName.mockImplementation(() => ({ id: 'androidVersionName', value: 'someVersionName', title: 'Android Version Name', apply: jest.fn(() => Promise.resolve()), })); getIosAssets.mockImplementation(() => ({ id: 'iosAssets', value: 'someAssets', title: 'iOS Assets', apply: jest.fn(() => Promise.resolve()), })); getIosBundleId.mockImplementation(() => ({ id: 'iosBundleId', value: 'someBundleId', title: 'iOS Bundle Id', apply: jest.fn(() => Promise.resolve()), })); getIosDisplayName.mockImplementation(() => ({ id: 'iosDisplayName', value: 'someDisplayName', title: 'iOS Display Name', apply: jest.fn(() => Promise.resolve()), })); getIosMarketingVersion.mockImplementation(() => ({ id: 'iosMarketingVersion', value: 'someMarketingVersion', title: 'iOS Marketing Version', apply: jest.fn(() => Promise.resolve()), })); getIosProjectVersion.mockImplementation(() => ({ id: 'iosProjectVersion', value: 'someProjectVersion', title: 'iOS Project Version', apply: jest.fn(() => Promise.resolve()), })); }); afterAll(() => { getAndroidAppId.mockRestore(); getAndroidDisplayName.mockRestore(); getAndroidLaunchIcon.mockRestore(); getAndroidVersionCode.mockRestore(); getAndroidVersionName.mockRestore(); getIosAssets.mockRestore(); getIosBundleId.mockRestore(); getIosDisplayName.mockRestore(); getIosMarketingVersion.mockRestore(); getIosProjectVersion.mockRestore(); }); it('should skip when not confirmed', async () => { options_1.options.get().manual = true; mockPrompter_1.mockPrompter.confirm.mockImplementationOnce(() => false); mockPrompter_1.mockPrompter.log.message.mockReset(); expect(await (0, importFromOldProject_1.importFromOldProject)('/oldProject')).toBeFalsy(); expect(mockPrompter_1.mockPrompter.log.message).toHaveBeenCalledWith(expect.stringContaining('skipping import from old project')); mockPrompter_1.mockPrompter.confirm.mockReset(); }); it('should call importer apply', async () => { mockPrompter_1.mockPrompter.confirm.mockImplementationOnce(() => true); expect(await (0, importFromOldProject_1.importFromOldProject)('/oldProject')).toBeTruthy(); expect(exampleGetter.apply).toHaveBeenCalled(); }); it('should log warning on some error', async () => { mockPrompter_1.mockPrompter.confirm.mockImplementationOnce(() => true); mockPrompter_1.mockPrompter.log.warning.mockReset(); exampleGetter.apply.mockImplementationOnce(() => Promise.reject(new Error('some error'))); expect(await (0, importFromOldProject_1.importFromOldProject)('/oldProject')).toBeTruthy(); expect(mockPrompter_1.mockPrompter.log.warning).toHaveBeenCalledWith(expect.stringContaining('some error')); }); });