test: add merge tests

This commit is contained in:
Igor Randjelovic
2020-11-22 16:52:33 +01:00
committed by Nathan Walker
parent 9e091c4bfd
commit d05e4ca1f7
7 changed files with 84 additions and 75 deletions

View File

@@ -178,8 +178,7 @@ exports[`react configuration > android > adds ReactRefreshWebpackPlugin when HMR
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process',
profile: '() => {}',
__TEST__: 'false',
__TEST__: false,
'process.env.NODE_ENV': '\\"development\\"'
}
),
@@ -373,8 +372,7 @@ exports[`react configuration > android > base config 1`] = `
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process',
profile: '() => {}',
__TEST__: 'false',
__TEST__: false,
'process.env.NODE_ENV': '\\"development\\"'
}
),
@@ -568,8 +566,7 @@ exports[`react configuration > ios > adds ReactRefreshWebpackPlugin when HMR ena
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process',
profile: '() => {}',
__TEST__: 'false',
__TEST__: false,
'process.env.NODE_ENV': '\\"development\\"'
}
),
@@ -766,8 +763,7 @@ exports[`react configuration > ios > base config 1`] = `
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process',
profile: '() => {}',
__TEST__: 'false',
__TEST__: false,
'process.env.NODE_ENV': '\\"development\\"'
}
),

View File

@@ -188,8 +188,7 @@ exports[`vue configuration for android 1`] = `
__IOS__: false,
'global.isAndroid': true,
'global.isIOS': false,
process: 'global.process',
profile: '() => {}'
process: 'global.process'
}
),
/* config.plugin('WatchStateLoggerPlugin') */
@@ -392,8 +391,7 @@ exports[`vue configuration for ios 1`] = `
__IOS__: true,
'global.isAndroid': false,
'global.isIOS': true,
process: 'global.process',
profile: '() => {}'
process: 'global.process'
}
),
/* config.plugin('WatchStateLoggerPlugin') */

View File

@@ -14,7 +14,6 @@ describe('@nativescript/webpack', () => {
it('applies chain configs', () => {
webpack.useConfig(false);
expect(webpack.chainWebpack).toBeInstanceOf(Function);
const chainFn = jest.fn();
webpack.chainWebpack(chainFn);
@@ -30,4 +29,72 @@ describe('@nativescript/webpack', () => {
expect(chainFn).toHaveBeenCalledWith(config, {});
expect(config).toBeInstanceOf(Config);
});
it('applies merge configs', () => {
const dummyEnv = { env: true };
webpack.init(dummyEnv);
webpack.useConfig(false);
const mergeFn = jest.fn();
webpack.mergeWebpack(mergeFn);
// mergeFn should not be called yet
expect(mergeFn).not.toHaveBeenCalled();
const config = webpack.resolveChainableConfig();
// mergeFn should not be called yet
expect(mergeFn).not.toHaveBeenCalled();
// mergeFn should only be called when
// resolving the final config
webpack.resolveConfig();
expect(mergeFn).toHaveBeenCalledTimes(1);
expect(mergeFn).toHaveBeenCalledWith(config.toConfig(), dummyEnv);
});
it('merges mutate config', () => {
const dummyEnv = { env: true };
webpack.init(dummyEnv);
webpack.useConfig(false);
webpack.mergeWebpack((config) => {
(config as any).mutated = true;
});
expect(webpack.resolveConfig()).toMatchObject({
mutated: true,
});
});
it('merges returned config', () => {
const dummyEnv = { env: true };
webpack.init(dummyEnv);
webpack.useConfig(false);
webpack.mergeWebpack(() => {
return {
returned: true,
};
});
expect(webpack.resolveConfig()).toMatchObject({
returned: true,
});
});
it('merges objects', () => {
const dummyEnv = { env: true };
webpack.init(dummyEnv);
webpack.useConfig(false);
webpack.mergeWebpack({
object: true,
} as any);
expect(webpack.resolveConfig()).toMatchObject({
object: true,
});
});
});