51 lines
897 B
JavaScript
51 lines
897 B
JavaScript
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);
|
|
});
|