mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 02:54:11 +08:00
85 lines
2.0 KiB
TypeScript
85 lines
2.0 KiB
TypeScript
import { env } from '../../src/';
|
|
import {
|
|
addPlatform,
|
|
getEntryPath,
|
|
getDistPath,
|
|
} from '../../src/helpers/platform';
|
|
|
|
import { getValue } from '../../src/helpers/config';
|
|
|
|
describe('getEntryPath', () => {
|
|
it('uses platform getEntryPath if the platform specifies it', () => {
|
|
env.platform = 'testPlatform';
|
|
addPlatform('testPlatform', {
|
|
getEntryPath() {
|
|
return 'custom-entry-path';
|
|
},
|
|
});
|
|
|
|
const res = getEntryPath();
|
|
expect(res).toEqual('custom-entry-path');
|
|
|
|
// cleanup env
|
|
delete env.platform;
|
|
});
|
|
|
|
it('uses main from nativescript.config.ts if set', () => {
|
|
env.ios = true;
|
|
|
|
// mock getValue
|
|
const getValueMock = getValue as jest.Mock;
|
|
const getValueMockImpl = getValueMock.getMockImplementation();
|
|
|
|
getValueMock.mockImplementation((key) => {
|
|
if (key === 'main') {
|
|
return 'main-from-config';
|
|
}
|
|
});
|
|
|
|
const res = getEntryPath();
|
|
expect(res).toEqual('__jest__/main-from-config');
|
|
|
|
// reset mock implementation
|
|
getValueMock.mockImplementation(getValueMockImpl);
|
|
});
|
|
|
|
it('uses main from package.json', () => {
|
|
env.ios = true;
|
|
|
|
const res = getEntryPath();
|
|
// set in jest.setup.ts mock for package.json...
|
|
expect(res).toEqual('__jest__/src/app.js');
|
|
});
|
|
});
|
|
|
|
describe('getDistPath', () => {
|
|
it('is generated from working directory when no projectName setting in nativescript.config.ts', () => {
|
|
env.ios = true;
|
|
|
|
const distPath = getDistPath();
|
|
|
|
expect(distPath).toEqual('platforms/ios/jest/app');
|
|
env.ios = false;
|
|
});
|
|
|
|
it('is generated using projectName value from nativescript.config.ts when set', () => {
|
|
env.ios = true;
|
|
|
|
// mock getValue
|
|
const getValueMock = getValue as jest.Mock;
|
|
const getValueMockImpl = getValueMock.getMockImplementation();
|
|
|
|
getValueMock.mockImplementation((key) => {
|
|
if (key === 'projectName') {
|
|
return 'projectNameSpecified';
|
|
}
|
|
});
|
|
|
|
const distPath = getDistPath();
|
|
|
|
expect(distPath).toEqual('platforms/ios/projectNameSpecified/app');
|
|
|
|
getValueMock.mockImplementation(getValueMockImpl);
|
|
});
|
|
});
|