diff options
-rw-r--r-- | cli/tests/unit/url_test.ts | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/cli/tests/unit/url_test.ts b/cli/tests/unit/url_test.ts index e32cab72a..8d280ccb5 100644 --- a/cli/tests/unit/url_test.ts +++ b/cli/tests/unit/url_test.ts @@ -1,5 +1,11 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -import { assert, assertEquals, assertThrows, unitTest } from "./test_util.ts"; +import { + assert, + assertEquals, + assertStrictEquals, + assertThrows, + unitTest, +} from "./test_util.ts"; unitTest(function urlParsing(): void { const url = new URL( @@ -470,3 +476,22 @@ unitTest(function emptyPortForSchemeDefaultPort(): void { url2.protocol = "http"; assertEquals(url2.port, ""); }); + +unitTest(function assigningPortPropertyAffectsReceiverOnly() { + // Setting `.port` should update only the receiver. + const u1 = new URL("http://google.com/"); + // deno-lint-ignore no-explicit-any + const u2 = new URL(u1 as any); + u2.port = "123"; + assertStrictEquals(u1.port, ""); + assertStrictEquals(u2.port, "123"); +}); + +unitTest(function urlSearchParamsIdentityPreserved() { + // URLSearchParams identity should not be lost when URL is updated. + const u = new URL("http://foo.com/"); + const sp1 = u.searchParams; + u.href = "http://bar.com/?baz=42"; + const sp2 = u.searchParams; + assertStrictEquals(sp1, sp2); +}); |