diff options
Diffstat (limited to 'Userland/Libraries/LibJS/Tests/builtins/WeakMap/WeakMap.js')
-rw-r--r-- | Userland/Libraries/LibJS/Tests/builtins/WeakMap/WeakMap.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Userland/Libraries/LibJS/Tests/builtins/WeakMap/WeakMap.js b/Userland/Libraries/LibJS/Tests/builtins/WeakMap/WeakMap.js new file mode 100644 index 0000000000..9dcbe59fb9 --- /dev/null +++ b/Userland/Libraries/LibJS/Tests/builtins/WeakMap/WeakMap.js @@ -0,0 +1,34 @@ +test("constructor properties", () => { + expect(WeakMap).toHaveLength(0); + expect(WeakMap.name).toBe("WeakMap"); +}); + +describe("errors", () => { + test("invalid array iterators", () => { + [-100, Infinity, NaN, {}, 152n].forEach(value => { + expect(() => { + new WeakMap(value); + }).toThrowWithMessage(TypeError, "is not iterable"); + }); + }); + test("called without new", () => { + expect(() => { + WeakMap(); + }).toThrowWithMessage(TypeError, "WeakMap constructor must be called with 'new'"); + }); +}); + +describe("normal behavior", () => { + test("typeof", () => { + expect(typeof new WeakMap()).toBe("object"); + }); + + test("constructor with single array of entries argument", () => { + var a = new WeakMap([ + [{ a: 1 }, 1], + [{ a: 2 }, 2], + [{ a: 3 }, 3], + ]); + expect(a instanceof WeakMap).toBeTrue(); + }); +}); |