Skip to content

Commit

Permalink
fix: --port flag parsing (#3374)
Browse files Browse the repository at this point in the history
  • Loading branch information
snitin315 authored Jun 2, 2021
1 parent 750fc63 commit 7e86922
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 1 deletion.
9 changes: 8 additions & 1 deletion bin/cli-flags.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,18 @@ module.exports = {
},
{
name: 'port',
type: Number,
type: [Number, String],
configs: [
{
type: 'number',
},
{
type: 'string',
},
{
type: 'enum',
values: ['auto'],
},
],
description: 'The port server will listen to.',
},
Expand Down
17 changes: 17 additions & 0 deletions test/cli/__snapshots__/cli.test.js.snap.webpack4
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,23 @@ exports[`CLI --no-https-request-cert 1`] = `
<i> [webpack-dev-server] Content not from webpack is served from '<cwd>/public' directory"
`;

exports[`CLI --port is auto: stderr 1`] = `
"<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:<port>/
<i> [webpack-dev-server] On Your Network (IPv4): http://<network-ip-v4>:<port>/
<i> [webpack-dev-server] On Your Network (IPv6): http://[<network-ip-v6>]:<port>/
<i> [webpack-dev-server] Content not from webpack is served from '<cwd>/public' directory"
`;

exports[`CLI --port is string: stderr 1`] = `
"<w> [webpack-dev-server] The \\"port\\" specified in options is different from the port passed as an argument. Will be used from arguments.
<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:<port>/
<i> [webpack-dev-server] On Your Network (IPv4): http://<network-ip-v4>:<port>/
<i> [webpack-dev-server] On Your Network (IPv6): http://[<network-ip-v6>]:<port>/
<i> [webpack-dev-server] Content not from webpack is served from '<cwd>/public' directory"
`;

exports[`CLI https and other related options 1`] = `
"<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: https://localhost:<port>/
Expand Down
17 changes: 17 additions & 0 deletions test/cli/__snapshots__/cli.test.js.snap.webpack5
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,23 @@ exports[`CLI --no-https-request-cert 1`] = `
<i> [webpack-dev-server] Content not from webpack is served from '<cwd>/public' directory"
`;

exports[`CLI --port is auto: stderr 1`] = `
"<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:<port>/
<i> [webpack-dev-server] On Your Network (IPv4): http://<network-ip-v4>:<port>/
<i> [webpack-dev-server] On Your Network (IPv6): http://[<network-ip-v6>]:<port>/
<i> [webpack-dev-server] Content not from webpack is served from '<cwd>/public' directory"
`;

exports[`CLI --port is string: stderr 1`] = `
"<w> [webpack-dev-server] The \\"port\\" specified in options is different from the port passed as an argument. Will be used from arguments.
<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:<port>/
<i> [webpack-dev-server] On Your Network (IPv4): http://<network-ip-v4>:<port>/
<i> [webpack-dev-server] On Your Network (IPv6): http://[<network-ip-v6>]:<port>/
<i> [webpack-dev-server] Content not from webpack is served from '<cwd>/public' directory"
`;

exports[`CLI https and other related options 1`] = `
"<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: https://localhost:<port>/
Expand Down
26 changes: 26 additions & 0 deletions test/cli/cli.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -432,6 +432,32 @@ describe('CLI', () => {
.catch(done);
});

it('--port is string', (done) => {
testBin(`--port "8080"`)
.then((output) => {
expect(output.exitCode).toEqual(0);
expect(normalizeStderr(output.stderr, { ipv6: true })).toMatchSnapshot(
'stderr'
);

done();
})
.catch(done);
});

it(`--port is auto`, (done) => {
testBin(`--port auto`)
.then((output) => {
expect(output.exitCode).toEqual(0);
expect(normalizeStderr(output.stderr, { ipv6: true })).toMatchSnapshot(
'stderr'
);

done();
})
.catch(done);
});

it('--open', (done) => {
testBin('--open')
.then((output) => {
Expand Down

0 comments on commit 7e86922

Please sign in to comment.