Skip to content

Commit 3618cf8

Browse files
fixing tests, flushing & building MetadataArgsStorage in the begging of the each test case
1 parent 60a5c24 commit 3618cf8

File tree

1 file changed

+66
-30
lines changed

1 file changed

+66
-30
lines changed
Lines changed: 66 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,41 @@
11
import "reflect-metadata";
22
import {MetadataBuilder} from "../../src/metadata-builder/MetadataBuilder";
3-
4-
import {Post} from "../../src/decorator/Post";
5-
import {Controller} from "../../src";
3+
import {Controller, getMetadataArgsStorage, Post} from "../../src";
64

75
const expect = require("chakram").expect;
86

97
describe("controller inheritance", () => {
10-
const metadataBuilder = new MetadataBuilder({});
11-
12-
abstract class AbstractControllerTemplate {
13-
@Post()
14-
public create() {
15-
}
16-
}
17-
18-
@Controller(`/derivative`)
19-
class DerivativeController extends AbstractControllerTemplate {
20-
}
21-
22-
@Controller(`/autonomous`)
23-
class AutonomousController {
24-
@Post()
25-
public create() {
26-
}
27-
}
28-
298

309
it("should build empty meta for empty set", () => {
10+
// Reset storage
11+
getMetadataArgsStorage().reset();
12+
const metadataBuilder = new MetadataBuilder({});
3113
const meta = metadataBuilder.buildControllerMetadata([]);
3214

3315
expect(meta.length).to.be.eq(0);
3416
});
3517

36-
it("should build meta if only derivative controller given", () => {
18+
it("should build meta if the only derivative controller is given", () => {
19+
// Reset storage
20+
getMetadataArgsStorage().reset();
21+
22+
// Persist storage from decorators
23+
abstract class AbstractControllerTemplate {
24+
@Post()
25+
public create() {}
26+
}
27+
28+
@Controller(`/derivative`)
29+
class DerivativeController extends AbstractControllerTemplate {}
30+
31+
@Controller(`/autonomous`)
32+
class AutonomousController {
33+
@Post()
34+
public create() {}
35+
}
36+
37+
// Build controllers
38+
const metadataBuilder = new MetadataBuilder({});
3739
const meta = metadataBuilder.buildControllerMetadata([
3840
DerivativeController,
3941
]);
@@ -46,7 +48,26 @@ describe("controller inheritance", () => {
4648
expect(meta[0].actions[0].type).to.be.eq("post");
4749
});
4850

49-
it("should build meta if only autonomous controller given", () => {
51+
it("should build meta if the only autonomous controller is given", () => {
52+
getMetadataArgsStorage().reset();
53+
54+
// Persist storage from decorators
55+
abstract class AbstractControllerTemplate {
56+
@Post()
57+
public create() {}
58+
}
59+
60+
@Controller(`/derivative`)
61+
class DerivativeController extends AbstractControllerTemplate {}
62+
63+
@Controller(`/autonomous`)
64+
class AutonomousController {
65+
@Post()
66+
public create() {}
67+
}
68+
69+
// Build controllers
70+
const metadataBuilder = new MetadataBuilder({});
5071
const meta = metadataBuilder.buildControllerMetadata([
5172
AutonomousController,
5273
]);
@@ -59,11 +80,27 @@ describe("controller inheritance", () => {
5980
expect(meta[0].actions[0].type).to.be.eq("post");
6081
});
6182

62-
it("should build meta if autonomous and derivative controllers given", () => {
63-
const meta = metadataBuilder.buildControllerMetadata([
64-
DerivativeController,
65-
AutonomousController,
66-
]);
83+
it("should build meta both when autonomous and derivative controllers are given", () => {
84+
getMetadataArgsStorage().reset();
85+
86+
// Persist storage from decorators
87+
abstract class AbstractControllerTemplate {
88+
@Post()
89+
public create() {}
90+
}
91+
92+
@Controller(`/derivative`)
93+
class DerivativeController extends AbstractControllerTemplate {}
94+
95+
@Controller(`/autonomous`)
96+
class AutonomousController {
97+
@Post()
98+
public create() {}
99+
}
100+
101+
// Build controllers
102+
const metadataBuilder = new MetadataBuilder({});
103+
const meta = metadataBuilder.buildControllerMetadata();
67104

68105
expect(meta.length).to.be.eq(2);
69106
expect(meta[0].actions.length).to.be.eq(1);
@@ -74,5 +111,4 @@ describe("controller inheritance", () => {
74111
expect(meta[1].actions[0].method).to.be.eq("create");
75112
expect(meta[1].actions[0].type).to.be.eq("post");
76113
});
77-
78114
});

0 commit comments

Comments
 (0)