1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- test("basic functionality", () => {
- const A = class {
- constructor(x) {
- this.x = x;
- }
- getX() {
- return this.x * 2;
- }
- };
- expect(new A(10).getX()).toBe(20);
- });
- test("inline instantiation", () => {
- // prettier-ignore
- const a = new class {
- constructor() {
- this.x = 10;
- }
- getX() {
- return this.x * 2;
- }
- };
- expect(a.getX()).toBe(20);
- });
- test("inline instantiation with argument", () => {
- // prettier-ignore
- const a = new class {
- constructor(x) {
- this.x = x;
- }
- getX() {
- return this.x * 2;
- }
- }(10);
- expect(a.getX()).toBe(20);
- });
- test("extending class expressions", () => {
- class A extends class {
- constructor(x) {
- this.x = x;
- }
- } {
- constructor(y) {
- super(y);
- this.y = y * 2;
- }
- }
- const a = new A(10);
- expect(a.x).toBe(10);
- expect(a.y).toBe(20);
- });
- test("class expression name", () => {
- let A = class {};
- expect(A.name).toBe("A");
- let B = class C {};
- expect(B.name).toBe("C");
- });
|