diff options
Diffstat (limited to 'tests/js/utils.js')
-rw-r--r-- | tests/js/utils.js | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/tests/js/utils.js b/tests/js/utils.js deleted file mode 100644 index 670d89a..0000000 --- a/tests/js/utils.js +++ /dev/null @@ -1,130 +0,0 @@ -const assert = require("node:assert"); - -const { runTests } = require("../runner.js"); -const { eq, keys } = require("../../src/utils.js"); - -const test_eq = t => { - t.start("eq()"); - t.test("scalar values equality", () => { - assert(eq(0, 0)); - assert(eq(100, 100)); - assert(eq(1.5, 1.5)); - assert(eq(-9, -9)); - - assert(!eq(0, 1)); - assert(!eq(100, 99)); - assert(!eq(1.5, 1.4)); - assert(!eq(-9, 9)); - - - assert(eq(null, null)); - assert(eq(undefined, undefined)); - assert(eq("", "")); - assert(eq("a string", "a string")); - - assert(!eq(null, undefined)); - assert(!eq(undefined, 0)); - assert(!eq("", "0")); - assert(!eq("a string", "another string")); - - - assert(eq(true, true)); - assert(eq(false, false)); - - assert(!eq(true, false)); - - - assert(eq(1n, 1n)); - assert(eq(99999999999999n, 99999999999999n)); - }); - - t.test("array equality", () => { - assert(eq([], [])); - - - assert(eq([0, 1, 2], [0, 1, 2])); - assert(eq([0, 1, 2], new Array(0, 1, 2))); - - assert(!eq([0, 1, 2], [0, 1])); - assert(!eq([0, 1], new Array(0, 1, 2))); - - - assert(eq([undefined], [undefined])); - assert(eq([null, 0, "", true], [null, 0, "", true])); - - - assert(eq([[[[0]]]], [[[[0]]]])); - - assert(!eq([[[[0]]]], [0])); - }); - - t.test("object equality", () => { - assert(eq({}, {})); - assert(eq({ a: 1 }, { a: 1 })); - - assert(!eq({ a: 1, b: undefined }, { a: 1 })); - - - assert(eq( - { a: 1, b: { c: { d: "e" } } }, - { a: 1, b: { c: { d: "e" } } }, - )); - - class C {} - // ... FIXME: finish - }); - - t.test("mixed values", () => { - assert(eq( - {a: ["", 1, 2, 3, [{ b: { c: [ "d", "e" ]}}]]}, - {a: ["", 1, 2, 3, [{ b: { c: [ "d", "e" ]}}]]}, - )); - - assert(!eq(null, {})); - - assert(!eq([], {})); - }); -}; - -const test_keys = t => { - t.start("keys()"); - t.test("happy paths", () => { - assert.deepEqual( - { a: 1, b: 2 }, - keys(["a", "b"], { a: 1, b: 2, c: 3 }), - ); - }); - - t.test("stress scenarios", () => { - assert.deepEqual( - {}, - keys([], {}), - "empty selection of empty object", - ); - - assert.deepEqual( - {}, - keys([], {a: 1}), - "empty selection of non-empty object", - ); - - assert.deepEqual( - {}, - keys(["a"], {}), - "non-empty selection of empty object", - ); - - assert.deepEqual( - { a: undefined, b: null }, - keys(["a", "b", "c"], { a: undefined, b: null }), - "falsy values", - ); - }); -}; - -const tests = [ - test_eq, - test_keys, -]; - -runTests(tests); |