/
injectMixin.test.js
74 lines (57 loc) · 1.24 KB
/
injectMixin.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import injectMixin from "../src/injectMixin";
import {
FooAble,
FuzzAble,
BarAble,
BazAble,
} from "../__tests_lib__/mixinClasses";
import {
testFooAble,
testFuzzAble,
testBarAble,
testBazAble,
} from "../__tests_lib__/testMixinClass";
describe("injectMixin", () => {
test("FooAble", () => {
const T = class { };
injectMixin(T, FooAble);
const t = new T();
testFooAble(T, t);
});
test("BarAble", () => {
const T = class { };
injectMixin(T, BarAble);
const t = new T();
testBarAble(T, t);
});
test("FooBarAble", () => {
const T = class { };
injectMixin(T, FooAble);
injectMixin(T, BarAble);
const t = new T();
testFooAble(T, t);
testBarAble(T, t);
});
test("BazAble", () => {
const T = class { };
injectMixin(T, BazAble);
const t = new T();
testBazAble(T, t);
});
test("FooBazAble", () => {
const T = class { };
injectMixin(T, FooAble);
injectMixin(T, BazAble);
const t = new T();
testFooAble(T, t);
testBazAble(T, t);
});
test("FuzzBazAble", () => {
const T = class { };
injectMixin(T, FuzzAble);
injectMixin(T, BazAble);
const t = new T();
testFuzzAble(T, t);
testBazAble(T, t);
});
});