diff options
Diffstat (limited to 'cli/tests/unit/globals_test.ts')
-rw-r--r-- | cli/tests/unit/globals_test.ts | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/cli/tests/unit/globals_test.ts b/cli/tests/unit/globals_test.ts deleted file mode 100644 index 00be3f451..000000000 --- a/cli/tests/unit/globals_test.ts +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -// deno-lint-ignore-file no-window-prefix -import { assert, assertEquals, assertRejects } from "./test_util.ts"; - -Deno.test(function globalThisExists() { - assert(globalThis != null); -}); - -Deno.test(function noInternalGlobals() { - // globalThis.__bootstrap should not be there. - for (const key of Object.keys(globalThis)) { - assert(!key.startsWith("_")); - } -}); - -Deno.test(function windowExists() { - assert(window != null); -}); - -Deno.test(function selfExists() { - assert(self != null); -}); - -Deno.test(function windowWindowExists() { - assert(window.window === window); -}); - -Deno.test(function windowSelfExists() { - assert(window.self === window); -}); - -Deno.test(function globalThisEqualsWindow() { - assert(globalThis === window); -}); - -Deno.test(function globalThisEqualsSelf() { - assert(globalThis === self); -}); - -Deno.test(function globalThisInstanceofWindow() { - assert(globalThis instanceof Window); -}); - -Deno.test(function globalThisConstructorLength() { - assert(globalThis.constructor.length === 0); -}); - -Deno.test(function globalThisInstanceofEventTarget() { - assert(globalThis instanceof EventTarget); -}); - -Deno.test(function navigatorInstanceofNavigator() { - // TODO(nayeemrmn): Add `Navigator` to deno_lint globals. - // deno-lint-ignore no-undef - assert(navigator instanceof Navigator); -}); - -Deno.test(function DenoNamespaceExists() { - assert(Deno != null); -}); - -Deno.test(function DenoNamespaceEqualsWindowDeno() { - assert(Deno === window.Deno); -}); - -Deno.test(function DenoNamespaceIsNotFrozen() { - assert(!Object.isFrozen(Deno)); -}); - -Deno.test(function webAssemblyExists() { - assert(typeof WebAssembly.compile === "function"); -}); - -// @ts-ignore This is not publicly typed namespace, but it's there for sure. -const core = Deno[Deno.internal].core; - -Deno.test(function DenoNamespaceConfigurable() { - const desc = Object.getOwnPropertyDescriptor(globalThis, "Deno"); - assert(desc); - assert(desc.configurable); - assert(!desc.writable); -}); - -Deno.test(function DenoCoreNamespaceIsImmutable() { - const { print } = core; - try { - core.print = 1; - } catch { - // pass - } - assert(print === core.print); - try { - delete core.print; - } catch { - // pass - } - assert(print === core.print); -}); - -Deno.test(async function windowQueueMicrotask() { - let resolve1: () => void | undefined; - let resolve2: () => void | undefined; - let microtaskDone = false; - const p1 = new Promise<void>((res) => { - resolve1 = () => { - microtaskDone = true; - res(); - }; - }); - const p2 = new Promise<void>((res) => { - resolve2 = () => { - assert(microtaskDone); - res(); - }; - }); - window.queueMicrotask(resolve1!); - setTimeout(resolve2!, 0); - await p1; - await p2; -}); - -Deno.test(function webApiGlobalThis() { - assert(globalThis.FormData !== null); - assert(globalThis.TextEncoder !== null); - assert(globalThis.TextEncoderStream !== null); - assert(globalThis.TextDecoder !== null); - assert(globalThis.TextDecoderStream !== null); - assert(globalThis.CountQueuingStrategy !== null); - assert(globalThis.ByteLengthQueuingStrategy !== null); -}); - -Deno.test(function windowNameIsDefined() { - assertEquals(typeof globalThis.name, "string"); - assertEquals(name, ""); - assertEquals(window.name, name); - name = "foobar"; - assertEquals(window.name, "foobar"); - assertEquals(name, "foobar"); - name = ""; - assertEquals(window.name, ""); - assertEquals(name, ""); -}); - -Deno.test(async function promiseWithResolvers() { - { - const { promise, resolve } = Promise.withResolvers(); - resolve(true); - assert(await promise); - } - { - const { promise, reject } = Promise.withResolvers(); - reject(new Error("boom!")); - await assertRejects(() => promise, Error, "boom!"); - } -}); - -Deno.test(async function arrayFromAsync() { - // Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fromAsync#examples - // Thank you. - const asyncIterable = (async function* () { - for (let i = 0; i < 5; i++) { - await new Promise((resolve) => setTimeout(resolve, 10 * i)); - yield i; - } - })(); - - const a = await Array.fromAsync(asyncIterable); - assertEquals(a, [0, 1, 2, 3, 4]); - - const b = await Array.fromAsync(new Map([[1, 2], [3, 4]])); - assertEquals(b, [[1, 2], [3, 4]]); -}); - -// Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/groupBy#examples -Deno.test(function objectGroupBy() { - const inventory = [ - { name: "asparagus", type: "vegetables", quantity: 5 }, - { name: "bananas", type: "fruit", quantity: 0 }, - { name: "goat", type: "meat", quantity: 23 }, - { name: "cherries", type: "fruit", quantity: 5 }, - { name: "fish", type: "meat", quantity: 22 }, - ]; - const result = Object.groupBy(inventory, ({ type }) => type); - assertEquals(result, { - vegetables: [ - { name: "asparagus", type: "vegetables", quantity: 5 }, - ], - fruit: [ - { name: "bananas", type: "fruit", quantity: 0 }, - { name: "cherries", type: "fruit", quantity: 5 }, - ], - meat: [ - { name: "goat", type: "meat", quantity: 23 }, - { name: "fish", type: "meat", quantity: 22 }, - ], - }); -}); - -Deno.test(function objectGroupByEmpty() { - const empty: string[] = []; - const result = Object.groupBy(empty, () => "abc"); - assertEquals(result.abc, undefined); -}); - -// Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/groupBy#examples -Deno.test(function mapGroupBy() { - const inventory = [ - { name: "asparagus", type: "vegetables", quantity: 9 }, - { name: "bananas", type: "fruit", quantity: 5 }, - { name: "goat", type: "meat", quantity: 23 }, - { name: "cherries", type: "fruit", quantity: 12 }, - { name: "fish", type: "meat", quantity: 22 }, - ]; - const restock = { restock: true }; - const sufficient = { restock: false }; - const result = Map.groupBy( - inventory, - ({ quantity }) => quantity < 6 ? restock : sufficient, - ); - assertEquals(result.get(restock), [{ - name: "bananas", - type: "fruit", - quantity: 5, - }]); -}); |