From 8d77a3297a0722e6f6dcb0ffb564ed016c0cfc20 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Fri, 11 Jun 2021 20:34:25 +0100 Subject: [PATCH] LibJS: Improve Error/NativeError tests Some of this stuff is already tested properly in the name and message prototype tests, so let's focus on covering all error types here as well instead. --- .../LibJS/Tests/builtins/Error/Error.js | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/Userland/Libraries/LibJS/Tests/builtins/Error/Error.js b/Userland/Libraries/LibJS/Tests/builtins/Error/Error.js index a452bd7a88..2926e0741c 100644 --- a/Userland/Libraries/LibJS/Tests/builtins/Error/Error.js +++ b/Userland/Libraries/LibJS/Tests/builtins/Error/Error.js @@ -1,18 +1,34 @@ -test("basic functionality", () => { - expect(Error).toHaveLength(1); - expect(Error.name).toBe("Error"); -}); +describe("normal behavior", () => { + test("length is 1", () => { + expect(Error).toHaveLength(1); + expect(EvalError).toHaveLength(1); + expect(RangeError).toHaveLength(1); + expect(ReferenceError).toHaveLength(1); + expect(SyntaxError).toHaveLength(1); + expect(TypeError).toHaveLength(1); + }); -test("name", () => { - [Error(), Error(undefined), Error("test"), Error(42), Error(null)].forEach(error => { - expect(error.name).toBe("Error"); + test("name matches constructor name", () => { + expect(Error.name).toBe("Error"); + expect(EvalError.name).toBe("EvalError"); + expect(RangeError.name).toBe("RangeError"); + expect(ReferenceError.name).toBe("ReferenceError"); + expect(SyntaxError.name).toBe("SyntaxError"); + expect(TypeError.name).toBe("TypeError"); + }); + + test("basic functionality", () => { + expect(Error()).toBeInstanceOf(Error); + expect(new Error()).toBeInstanceOf(Error); + expect(EvalError()).toBeInstanceOf(EvalError); + expect(new EvalError()).toBeInstanceOf(EvalError); + expect(RangeError()).toBeInstanceOf(RangeError); + expect(new RangeError()).toBeInstanceOf(RangeError); + expect(ReferenceError()).toBeInstanceOf(ReferenceError); + expect(new ReferenceError()).toBeInstanceOf(ReferenceError); + expect(SyntaxError()).toBeInstanceOf(SyntaxError); + expect(new SyntaxError()).toBeInstanceOf(SyntaxError); + expect(TypeError()).toBeInstanceOf(TypeError); + expect(new TypeError()).toBeInstanceOf(TypeError); }); }); - -test("message", () => { - expect(Error().message).toBe(""); - expect(Error(undefined).message).toBe(""); - expect(Error("test").message).toBe("test"); - expect(Error(42).message).toBe("42"); - expect(Error(null).message).toBe("null"); -});