mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-14 10:01:08 +08:00

implements #9658 BREAKING CHANGES: Possibly breaking if a project has a main field set in the nativescript.config.ts - since after this lands, this value will be used instead of package.json main. The impact is likely very small, the steps to migrate: (Option A) remove main from nativescript.config.ts if set (Option B) update main to the correct path in nativescript.config.ts if set incorrectly
101 lines
1.9 KiB
TypeScript
101 lines
1.9 KiB
TypeScript
// we are mocking the cwd for the tests, since webpack needs absolute paths
|
|
// and we don't want them in tests
|
|
process.cwd = () => '__jest__';
|
|
|
|
jest.mock('cosmiconfig', () => ({
|
|
cosmiconfigSync(moduleName) {
|
|
return {
|
|
search() {
|
|
// no-op in tests
|
|
return null;
|
|
},
|
|
};
|
|
},
|
|
}));
|
|
|
|
const getValueMock = jest.fn();
|
|
getValueMock.mockImplementation((key, defaultValue) => defaultValue);
|
|
jest.mock('../src/helpers/config.ts', () => ({
|
|
getValue: getValueMock,
|
|
}));
|
|
|
|
jest.mock('os', () => {
|
|
const os = jest.requireActual('os');
|
|
|
|
return {
|
|
...os,
|
|
networkInterfaces() {
|
|
return {
|
|
in0: [
|
|
{
|
|
address: '127.0.0.1',
|
|
family: 'IPv4',
|
|
},
|
|
{
|
|
address: 'in0-ipv6-should-not-use',
|
|
family: 'IPv6',
|
|
},
|
|
],
|
|
in1: [
|
|
{
|
|
address: '192.168.0.10',
|
|
family: 'IPv4',
|
|
},
|
|
{
|
|
address: 'in1-ipv6-should-not-use',
|
|
family: 'IPv6',
|
|
},
|
|
],
|
|
};
|
|
},
|
|
};
|
|
});
|
|
|
|
jest.mock('path', () => {
|
|
const path = jest.requireActual('path');
|
|
return {
|
|
...path,
|
|
resolve(...args) {
|
|
if (args[0] === '__jest__') {
|
|
return path.join(...args.filter(Boolean));
|
|
}
|
|
|
|
const resolved = path.resolve(...args);
|
|
if (resolved.includes('__jest__')) {
|
|
const li = resolved.lastIndexOf('__jest__');
|
|
return resolved.substr(li);
|
|
}
|
|
|
|
// handle resolutions with __dirname
|
|
// used in base config's resolveLoader
|
|
const root = path.resolve(__dirname, '..');
|
|
if (resolved.startsWith(root)) {
|
|
const newPath = resolved.replace(root, '__jest__');
|
|
|
|
if (newPath.startsWith('__jest__/src')) {
|
|
return newPath.replace(
|
|
'__jest__/src',
|
|
'__jest__/node_modules/@nativescript/webpack/dist'
|
|
);
|
|
}
|
|
|
|
return newPath;
|
|
}
|
|
|
|
return resolved;
|
|
},
|
|
};
|
|
});
|
|
|
|
// a virtual mock for package.json
|
|
jest.mock(
|
|
'__jest__/package.json',
|
|
() => ({
|
|
main: 'src/app.js',
|
|
devDependencies: {
|
|
typescript: '*',
|
|
},
|
|
}),
|
|
{ virtual: true }
|
|
);
|