diff --git a/test/serve/basic/dev-server-output-public-path.config.js b/test/serve/basic/dev-server-output-public-path.config.js new file mode 100644 index 00000000000..e84e9137dd6 --- /dev/null +++ b/test/serve/basic/dev-server-output-public-path.config.js @@ -0,0 +1,13 @@ +const WebpackCLITestPlugin = require('../../utils/webpack-cli-test-plugin'); + +module.exports = { + mode: 'development', + devtool: false, + output: { + publicPath: '/my-public-path/', + }, + devServer: { + publicPath: '/dev-server-my-public-path/', + }, + plugins: [new WebpackCLITestPlugin(['mode', 'output'], false, 'hooks.compilation.taps')], +}; diff --git a/test/serve/basic/output-public-path.config.js b/test/serve/basic/output-public-path.config.js new file mode 100644 index 00000000000..0b9f7f04547 --- /dev/null +++ b/test/serve/basic/output-public-path.config.js @@ -0,0 +1,10 @@ +const WebpackCLITestPlugin = require('../../utils/webpack-cli-test-plugin'); + +module.exports = { + mode: 'development', + devtool: false, + output: { + publicPath: '/my-public-path/', + }, + plugins: [new WebpackCLITestPlugin(['mode', 'output'], false, 'hooks.compilation.taps')], +}; diff --git a/test/serve/basic/serve-basic.test.js b/test/serve/basic/serve-basic.test.js index 7efedca684f..b65482a221c 100644 --- a/test/serve/basic/serve-basic.test.js +++ b/test/serve/basic/serve-basic.test.js @@ -141,6 +141,34 @@ describe('basic serve usage', () => { expect(stdout.match(/HotModuleReplacementPlugin/g)).toHaveLength(1); }); + // TODO uncomment for webpack-dev-server@4 + it.skip('should work with the "--output-public-path" option', async () => { + const { stderr, stdout } = await runServe(['serve', '--output-public-path', '/my-public-path/'], __dirname); + + expect(stderr).toBeFalsy(); + expect(stdout).toContain('main.js'); + expect(stdout).toContain('/my-public-path/'); + expect(stdout.match(/HotModuleReplacementPlugin/g)).toBeNull(); + }); + + it('should respect the "publicPath" option from configuration', async () => { + const { stderr, stdout } = await runServe(['serve', '--config', 'output-public-path.config.js'], __dirname); + + expect(stderr).toBeFalsy(); + expect(stdout).toContain('main.js'); + expect(stdout).toContain('/my-public-path/'); + expect(stdout.match(/HotModuleReplacementPlugin/g)).toBeNull(); + }); + + it('should respect the "publicPath" option from configuration (from the "devServer" options)', async () => { + const { stderr, stdout } = await runServe(['serve', '--config', 'dev-server-output-public-path.config.js'], __dirname); + + expect(stderr).toBeFalsy(); + expect(stdout).toContain('main.js'); + expect(stdout).toContain('/dev-server-my-public-path/'); + expect(stdout.match(/HotModuleReplacementPlugin/g)).toBeNull(); + }); + it('should log and error on unknown flag', async () => { const { exitCode, stdout, stderr } = await runServe(['--port', port, '--unknown-flag'], testPath);