summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHirotaka Tagawa / wafuwafu13 <jaruwafu@gmail.com>2023-09-30 09:14:48 +0100
committerGitHub <noreply@github.com>2023-09-30 10:14:48 +0200
commit9017e789df59aa8fba400f3ad8ae3b8b8290b4a8 (patch)
tree2da9542509155dc6a06318fbb5f9ae744c6ecdd8
parent7bcf1211a1494c188c9de83670d328c0492de98a (diff)
test(node_compat): add `test-http-url.parse*` (#20458)
Add `test-http-url.parse*` tests for Node compat.
-rw-r--r--cli/tests/node_compat/config.jsonc9
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-url.parse-auth-with-header-in-request.js59
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-url.parse-auth.js55
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-url.parse-basic.js65
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-url.parse-https.request.js69
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-url.parse-only-support-http-https-protocol.js52
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-url.parse-path.js53
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-url.parse-post.js61
-rw-r--r--cli/tests/node_compat/test/parallel/test-http-url.parse-search.js54
-rw-r--r--tools/node_compat/TODO.md10
10 files changed, 478 insertions, 9 deletions
diff --git a/cli/tests/node_compat/config.jsonc b/cli/tests/node_compat/config.jsonc
index 576ff7305..d1ad44f41 100644
--- a/cli/tests/node_compat/config.jsonc
+++ b/cli/tests/node_compat/config.jsonc
@@ -72,6 +72,7 @@
"test-fs-rmdir-recursive.js",
"test-fs-write-file.js",
"test-fs-write.js",
+ "test-http-url.parse-https.request.js",
"test-net-better-error-messages-path.js",
"test-net-connect-buffer.js",
"test-net-connect-buffer2.js",
@@ -373,6 +374,14 @@
// "test-http-outgoing-message-inheritance.js",
"test-http-outgoing-renderHeaders.js",
"test-http-outgoing-settimeout.js",
+ "test-http-url.parse-auth-with-header-in-request.js",
+ "test-http-url.parse-auth.js",
+ "test-http-url.parse-basic.js",
+ "test-http-url.parse-https.request.js",
+ "test-http-url.parse-only-support-http-https-protocol.js",
+ "test-http-url.parse-path.js",
+ "test-http-url.parse-post.js",
+ "test-http-url.parse-search.js",
"test-net-access-byteswritten.js",
"test-net-better-error-messages-listen-path.js",
"test-net-better-error-messages-path.js",
diff --git a/cli/tests/node_compat/test/parallel/test-http-url.parse-auth-with-header-in-request.js b/cli/tests/node_compat/test/parallel/test-http-url.parse-auth-with-header-in-request.js
new file mode 100644
index 000000000..24cc2f33d
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-http-url.parse-auth-with-header-in-request.js
@@ -0,0 +1,59 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+require('../common');
+const assert = require('assert');
+const http = require('http');
+const url = require('url');
+
+function check(request) {
+ // The correct authorization header is be passed
+ assert.strictEqual(request.headers.authorization, 'NoAuthForYOU');
+}
+
+const server = http.createServer(function(request, response) {
+ // Run the check function
+ check(request);
+ response.writeHead(200, {});
+ response.end('ok');
+ server.close();
+});
+
+server.listen(0, function() {
+ const testURL =
+ url.parse(`http://asdf:qwer@localhost:${this.address().port}`);
+ // The test here is if you set a specific authorization header in the
+ // request we should not override that with basic auth
+ testURL.headers = {
+ Authorization: 'NoAuthForYOU'
+ };
+
+ // make the request
+ http.request(testURL).end();
+});
diff --git a/cli/tests/node_compat/test/parallel/test-http-url.parse-auth.js b/cli/tests/node_compat/test/parallel/test-http-url.parse-auth.js
new file mode 100644
index 000000000..c9b691aa2
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-http-url.parse-auth.js
@@ -0,0 +1,55 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+require('../common');
+const assert = require('assert');
+const http = require('http');
+const url = require('url');
+
+function check(request) {
+ // The correct authorization header is be passed
+ assert.strictEqual(request.headers.authorization, 'Basic dXNlcjpwYXNzOg==');
+}
+
+const server = http.createServer(function(request, response) {
+ // Run the check function
+ check(request);
+ response.writeHead(200, {});
+ response.end('ok');
+ server.close();
+});
+
+server.listen(0, function() {
+ const port = this.address().port;
+ // username = "user", password = "pass:"
+ const testURL = url.parse(`http://user:pass%3A@localhost:${port}`);
+
+ // make the request
+ http.request(testURL).end();
+});
diff --git a/cli/tests/node_compat/test/parallel/test-http-url.parse-basic.js b/cli/tests/node_compat/test/parallel/test-http-url.parse-basic.js
new file mode 100644
index 000000000..e41bf41a1
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-http-url.parse-basic.js
@@ -0,0 +1,65 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+require('../common');
+const assert = require('assert');
+const http = require('http');
+const url = require('url');
+
+let testURL;
+
+// Make sure the basics work
+function check(request) {
+ // Default method should still be 'GET'
+ assert.strictEqual(request.method, 'GET');
+ // There are no URL params, so you should not see any
+ assert.strictEqual(request.url, '/');
+ // The host header should use the url.parse.hostname
+ assert.strictEqual(request.headers.host,
+ `${testURL.hostname}:${testURL.port}`);
+}
+
+const server = http.createServer(function(request, response) {
+ // Run the check function
+ check(request);
+ response.writeHead(200, {});
+ response.end('ok');
+ server.close();
+});
+
+server.listen(0, function() {
+ testURL = url.parse(`http://localhost:${this.address().port}`);
+
+ // make the request
+ const clientRequest = http.request(testURL);
+ // Since there is a little magic with the agent
+ // make sure that an http request uses the http.Agent
+ assert.ok(clientRequest.agent instanceof http.Agent);
+ clientRequest.end();
+});
diff --git a/cli/tests/node_compat/test/parallel/test-http-url.parse-https.request.js b/cli/tests/node_compat/test/parallel/test-http-url.parse-https.request.js
new file mode 100644
index 000000000..89c7ca2b4
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-http-url.parse-https.request.js
@@ -0,0 +1,69 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+const common = require('../common');
+if (!common.hasCrypto)
+ common.skip('missing crypto');
+const { readKey } = require('../common/fixtures');
+
+const assert = require('assert');
+const https = require('https');
+const url = require('url');
+
+// https options
+const httpsOptions = {
+ key: readKey('agent1-key.pem'),
+ cert: readKey('agent1-cert.pem')
+};
+
+function check(request) {
+ // Assert that I'm https
+ assert.ok(request.socket._secureEstablished);
+}
+
+const server = https.createServer(httpsOptions, function(request, response) {
+ // Run the check function
+ check(request);
+ response.writeHead(200, {});
+ response.end('ok');
+ server.close();
+});
+
+// TODO(wafuwafu13): rejectUnauthorized is always true in Deno
+// server.listen(0, function() {
+// const testURL = url.parse(`https://localhost:${this.address().port}`);
+// testURL.rejectUnauthorized = false;
+
+// // make the request
+// const clientRequest = https.request(testURL);
+// // Since there is a little magic with the agent
+// // make sure that the request uses the https.Agent
+// assert.ok(clientRequest.agent instanceof https.Agent);
+// clientRequest.end();
+// });
diff --git a/cli/tests/node_compat/test/parallel/test-http-url.parse-only-support-http-https-protocol.js b/cli/tests/node_compat/test/parallel/test-http-url.parse-only-support-http-https-protocol.js
new file mode 100644
index 000000000..4f50f8a54
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-http-url.parse-only-support-http-https-protocol.js
@@ -0,0 +1,52 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+require('../common');
+const assert = require('assert');
+const http = require('http');
+const url = require('url');
+
+const invalidUrls = [
+ 'file:///whatever',
+ 'mailto:asdf@asdf.com',
+ 'ftp://www.example.com',
+ 'javascript:alert(\'hello\');',
+ 'xmpp:foo@bar.com',
+ 'f://some.host/path',
+];
+
+invalidUrls.forEach((invalid) => {
+ assert.throws(
+ () => { http.request(url.parse(invalid)); },
+ {
+ code: 'ERR_INVALID_PROTOCOL',
+ name: 'TypeError'
+ }
+ );
+});
diff --git a/cli/tests/node_compat/test/parallel/test-http-url.parse-path.js b/cli/tests/node_compat/test/parallel/test-http-url.parse-path.js
new file mode 100644
index 000000000..7077fcae1
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-http-url.parse-path.js
@@ -0,0 +1,53 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+require('../common');
+const assert = require('assert');
+const http = require('http');
+const url = require('url');
+
+function check(request) {
+ // A path should come over
+ assert.strictEqual(request.url, '/asdf');
+}
+
+const server = http.createServer(function(request, response) {
+ // Run the check function
+ check(request);
+ response.writeHead(200, {});
+ response.end('ok');
+ server.close();
+});
+
+server.listen(0, function() {
+ const testURL = url.parse(`http://localhost:${this.address().port}/asdf`);
+
+ // make the request
+ http.request(testURL).end();
+});
diff --git a/cli/tests/node_compat/test/parallel/test-http-url.parse-post.js b/cli/tests/node_compat/test/parallel/test-http-url.parse-post.js
new file mode 100644
index 000000000..da316d2db
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-http-url.parse-post.js
@@ -0,0 +1,61 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+require('../common');
+const assert = require('assert');
+const http = require('http');
+const url = require('url');
+
+let testURL;
+
+function check(request) {
+ // url.parse should not mess with the method
+ assert.strictEqual(request.method, 'POST');
+ // Everything else should be right
+ assert.strictEqual(request.url, '/asdf?qwer=zxcv');
+ // The host header should use the url.parse.hostname
+ assert.strictEqual(request.headers.host,
+ `${testURL.hostname}:${testURL.port}`);
+}
+
+const server = http.createServer(function(request, response) {
+ // Run the check function
+ check(request);
+ response.writeHead(200, {});
+ response.end('ok');
+ server.close();
+});
+
+server.listen(0, function() {
+ testURL = url.parse(`http://localhost:${this.address().port}/asdf?qwer=zxcv`);
+ testURL.method = 'POST';
+
+ // make the request
+ http.request(testURL).end();
+});
diff --git a/cli/tests/node_compat/test/parallel/test-http-url.parse-search.js b/cli/tests/node_compat/test/parallel/test-http-url.parse-search.js
new file mode 100644
index 000000000..52651869d
--- /dev/null
+++ b/cli/tests/node_compat/test/parallel/test-http-url.parse-search.js
@@ -0,0 +1,54 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+'use strict';
+require('../common');
+const assert = require('assert');
+const http = require('http');
+const url = require('url');
+
+function check(request) {
+ // A path should come over with params
+ assert.strictEqual(request.url, '/asdf?qwer=zxcv');
+}
+
+const server = http.createServer(function(request, response) {
+ // Run the check function
+ check(request);
+ response.writeHead(200, {});
+ response.end('ok');
+ server.close();
+});
+
+server.listen(0, function() {
+ const port = this.address().port;
+ const testURL = url.parse(`http://localhost:${port}/asdf?qwer=zxcv`);
+
+ // make the request
+ http.request(testURL).end();
+});
diff --git a/tools/node_compat/TODO.md b/tools/node_compat/TODO.md
index cb0da2d8a..870fad293 100644
--- a/tools/node_compat/TODO.md
+++ b/tools/node_compat/TODO.md
@@ -3,7 +3,7 @@
NOTE: This file should not be manually edited. Please edit `cli/tests/node_compat/config.json` and run `deno task setup` in `tools/node_compat` dir instead.
-Total: 2934
+Total: 2926
- [abort/test-abort-backtrace.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-abort-backtrace.js)
- [abort/test-abort-fatal-error.js](https://github.com/nodejs/node/tree/v18.12.1/test/abort/test-abort-fatal-error.js)
@@ -1218,14 +1218,6 @@ Total: 2934
- [parallel/test-http-upgrade-reconsume-stream.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-reconsume-stream.js)
- [parallel/test-http-upgrade-server.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-server.js)
- [parallel/test-http-upgrade-server2.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-upgrade-server2.js)
-- [parallel/test-http-url.parse-auth-with-header-in-request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-auth-with-header-in-request.js)
-- [parallel/test-http-url.parse-auth.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-auth.js)
-- [parallel/test-http-url.parse-basic.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-basic.js)
-- [parallel/test-http-url.parse-https.request.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-https.request.js)
-- [parallel/test-http-url.parse-only-support-http-https-protocol.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-only-support-http-https-protocol.js)
-- [parallel/test-http-url.parse-path.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-path.js)
-- [parallel/test-http-url.parse-post.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-post.js)
-- [parallel/test-http-url.parse-search.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-url.parse-search.js)
- [parallel/test-http-wget.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-wget.js)
- [parallel/test-http-writable-true-after-close.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-writable-true-after-close.js)
- [parallel/test-http-write-callbacks.js](https://github.com/nodejs/node/tree/v18.12.1/test/parallel/test-http-write-callbacks.js)