summaryrefslogtreecommitdiff
path: root/tests/js/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/js/utils.js')
-rw-r--r--tests/js/utils.js130
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);