scratch-webpack-configuration/test/targets.test.js

36 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-03-08 20:45:46 -05:00
const path = require('path');
const webpack = require('webpack');
const ScratchWebpackConfigBuilder = require('../src/index.cjs');
const common = {
libraryName: 'test-library',
rootPath: path.resolve(__dirname)
};
describe('generating configurations for specific targets', () => {
it('should should generate a valid configuration without a target', () => {
const genericConfig = new ScratchWebpackConfigBuilder(common)
.get();
expect(genericConfig).not.toHaveProperty('target');
expect(() => webpack.validate(genericConfig)).not.toThrow();
});
it('should should generate a valid `node` configuration', () => {
const nodeConfig = new ScratchWebpackConfigBuilder(common)
.setTarget('node')
.get();
expect(nodeConfig).toMatchObject({target: 'node'});
expect(() => webpack.validate(nodeConfig)).not.toThrow();
});
it('should should generate a valid `browserslist` configuration', () => {
const webConfig = new ScratchWebpackConfigBuilder(common)
.setTarget('browserslist')
.get();
expect(webConfig).toMatchObject({target: 'browserslist'});
expect(() => webpack.validate(webConfig)).not.toThrow();
});
});