diff options
Diffstat (limited to 'Libraries/LibJS/Tests/classes/class-methods.js')
-rw-r--r-- | Libraries/LibJS/Tests/classes/class-methods.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Libraries/LibJS/Tests/classes/class-methods.js b/Libraries/LibJS/Tests/classes/class-methods.js new file mode 100644 index 0000000000..4bc04ea5a5 --- /dev/null +++ b/Libraries/LibJS/Tests/classes/class-methods.js @@ -0,0 +1,51 @@ +test("basic functionality", () => { + class A { + number() { + return 2; + } + + string() { + return "foo"; + } + } + + const a = new A(); + expect(a.number()).toBe(2); + expect(a.string()).toBe("foo"); +}); + +test("length", () => { + class A { + method1() {} + + method2(a, b, c, d) {} + + method3(a, b, ...c) {} + } + + const a = new A(); + expect(a.method1).toHaveLength(0); + expect(a.method2).toHaveLength(4); + expect(a.method3).toHaveLength(2); +}); + +test("extended name syntax", () => { + class A { + "method with space"() { + return 1; + } + + 12() { + return 2; + } + + [`he${"llo"}`]() { + return 3; + } + } + + const a = new A(); + expect(a["method with space"]()).toBe(1); + expect(a[12]()).toBe(2); + expect(a.hello()).toBe(3); +}); |