* Round out class properties tests * Rename in preperation for private tests * Fix options
39 lines
825 B
JavaScript
39 lines
825 B
JavaScript
const actualOrder = [];
|
|
|
|
const track = i => {
|
|
actualOrder.push(i);
|
|
return i;
|
|
};
|
|
|
|
class MyClass {
|
|
static [track(1)] = track(10);
|
|
[track(2)] = track(13);
|
|
get [track(3)]() {
|
|
return "foo";
|
|
}
|
|
set [track(4)](value) {
|
|
this.bar = value;
|
|
}
|
|
[track(5)] = track(14);
|
|
static [track(6)] = track(11);
|
|
static [track(7)] = track(12);
|
|
[track(8)]() {}
|
|
[track(9)] = track(15);
|
|
}
|
|
|
|
const inst = new MyClass();
|
|
|
|
const expectedOrder = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
|
|
expect(actualOrder).toEqual(expectedOrder);
|
|
|
|
expect(MyClass[1]).toBe(10);
|
|
expect(inst[2]).toBe(13);
|
|
expect(inst[3]).toBe("foo");
|
|
inst[4] = "baz";
|
|
expect(inst.bar).toBe("baz");
|
|
expect(inst[5]).toBe(14);
|
|
expect(MyClass[6]).toBe(11);
|
|
expect(MyClass[7]).toBe(12);
|
|
expect(typeof inst[8]).toBe("function");
|
|
expect(inst[9]).toBe(15);
|