summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS/Tests/builtins/WeakMap/WeakMap.js
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibJS/Tests/builtins/WeakMap/WeakMap.js')
-rw-r--r--Userland/Libraries/LibJS/Tests/builtins/WeakMap/WeakMap.js34
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();
+ });
+});