@tsed/platform-test-sdk 7.83.3 → 8.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/components/PlatformTestSdk.js +1 -1
- package/lib/esm/components/PlatformTestSdk.js.map +1 -1
- package/lib/esm/modules/feature/FeatureModule.js.map +1 -1
- package/lib/esm/modules/feature/controllers/FeatureController.js +2 -1
- package/lib/esm/modules/feature/controllers/FeatureController.js.map +1 -1
- package/lib/esm/tests/exports.js +1 -1
- package/lib/esm/tests/exports.js.map +1 -1
- package/lib/esm/tests/testAcceptMime.js +3 -2
- package/lib/esm/tests/testAcceptMime.js.map +1 -1
- package/lib/esm/tests/testAuth.js +3 -2
- package/lib/esm/tests/testAuth.js.map +1 -1
- package/lib/esm/tests/testBodyParams.js +2 -1
- package/lib/esm/tests/testBodyParams.js.map +1 -1
- package/lib/esm/tests/testCache.js +4 -3
- package/lib/esm/tests/testCache.js.map +1 -1
- package/lib/esm/tests/testChildrenControllers.js +3 -1
- package/lib/esm/tests/testChildrenControllers.js.map +1 -1
- package/lib/esm/tests/testCookies.js +3 -1
- package/lib/esm/tests/testCookies.js.map +1 -1
- package/lib/esm/tests/testCustom404.js +1 -0
- package/lib/esm/tests/testCustom404.js.map +1 -1
- package/lib/esm/tests/testDeepQueryParams.js +3 -2
- package/lib/esm/tests/testDeepQueryParams.js.map +1 -1
- package/lib/esm/tests/testErrors.js +9 -8
- package/lib/esm/tests/testErrors.js.map +1 -1
- package/lib/esm/tests/testHandlers.js +3 -2
- package/lib/esm/tests/testHandlers.js.map +1 -1
- package/lib/esm/tests/testHeaderParams.js +3 -2
- package/lib/esm/tests/testHeaderParams.js.map +1 -1
- package/lib/esm/tests/testHeaders.js +7 -6
- package/lib/esm/tests/testHeaders.js.map +1 -1
- package/lib/esm/tests/testInheritanceController.js +4 -3
- package/lib/esm/tests/testInheritanceController.js.map +1 -1
- package/lib/esm/tests/testLocals.js +3 -1
- package/lib/esm/tests/testLocals.js.map +1 -1
- package/lib/esm/tests/testLocation.js +3 -2
- package/lib/esm/tests/testLocation.js.map +1 -1
- package/lib/esm/tests/testMiddlewares.js +3 -1
- package/lib/esm/tests/testMiddlewares.js.map +1 -1
- package/lib/esm/tests/testModule.js +3 -1
- package/lib/esm/tests/testModule.js.map +1 -1
- package/lib/esm/tests/testMulter.js +1 -0
- package/lib/esm/tests/testMulter.js.map +1 -1
- package/lib/esm/tests/testPathParams.js +3 -2
- package/lib/esm/tests/testPathParams.js.map +1 -1
- package/lib/esm/tests/testQueryParams.js +3 -2
- package/lib/esm/tests/testQueryParams.js.map +1 -1
- package/lib/esm/tests/testRedirect.js +4 -2
- package/lib/esm/tests/testRedirect.js.map +1 -1
- package/lib/esm/tests/testResponse.js +5 -4
- package/lib/esm/tests/testResponse.js.map +1 -1
- package/lib/esm/tests/testResponseFilter.js +5 -4
- package/lib/esm/tests/testResponseFilter.js.map +1 -1
- package/lib/esm/tests/testRouting.js +3 -1
- package/lib/esm/tests/testRouting.js.map +1 -1
- package/lib/esm/tests/testScopeRequest.js +3 -1
- package/lib/esm/tests/testScopeRequest.js.map +1 -1
- package/lib/esm/tests/testSession.js +3 -2
- package/lib/esm/tests/testSession.js.map +1 -1
- package/lib/esm/tests/testStatics.js +1 -0
- package/lib/esm/tests/testStatics.js.map +1 -1
- package/lib/esm/tests/testStream.js +3 -2
- package/lib/esm/tests/testStream.js.map +1 -1
- package/lib/esm/tests/testView.js +4 -2
- package/lib/esm/tests/testView.js.map +1 -1
- package/lib/types/components/PlatformTestSdk.d.ts +1 -1
- package/package.json +26 -24
- package/lib/cjs/components/PlatformTestSdk.js +0 -30
- package/lib/cjs/components/PlatformTestSdk.js.map +0 -1
- package/lib/cjs/data/response.data.json +0 -3
- package/lib/cjs/data/swagger.json +0 -32
- package/lib/cjs/errors/CustomBadRequest.js +0 -17
- package/lib/cjs/errors/CustomBadRequest.js.map +0 -1
- package/lib/cjs/errors/CustomInternalError.js +0 -17
- package/lib/cjs/errors/CustomInternalError.js.map +0 -1
- package/lib/cjs/index.js +0 -44
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/interfaces/PlatformTestingSdkOpts.js +0 -3
- package/lib/cjs/interfaces/PlatformTestingSdkOpts.js.map +0 -1
- package/lib/cjs/interfaces/index.js +0 -8
- package/lib/cjs/interfaces/index.js.map +0 -1
- package/lib/cjs/modules/feature/FeatureModule.js +0 -17
- package/lib/cjs/modules/feature/FeatureModule.js.map +0 -1
- package/lib/cjs/modules/feature/controllers/FeatureController.js +0 -23
- package/lib/cjs/modules/feature/controllers/FeatureController.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/tests/exports.js +0 -68
- package/lib/cjs/tests/exports.js.map +0 -1
- package/lib/cjs/tests/testAcceptMime.js +0 -103
- package/lib/cjs/tests/testAcceptMime.js.map +0 -1
- package/lib/cjs/tests/testAuth.js +0 -343
- package/lib/cjs/tests/testAuth.js.map +0 -1
- package/lib/cjs/tests/testBodyParams.js +0 -539
- package/lib/cjs/tests/testBodyParams.js.map +0 -1
- package/lib/cjs/tests/testCache.js +0 -299
- package/lib/cjs/tests/testCache.js.map +0 -1
- package/lib/cjs/tests/testChildrenControllers.js +0 -64
- package/lib/cjs/tests/testChildrenControllers.js.map +0 -1
- package/lib/cjs/tests/testCookies.js +0 -45
- package/lib/cjs/tests/testCookies.js.map +0 -1
- package/lib/cjs/tests/testCustom404.js +0 -32
- package/lib/cjs/tests/testCustom404.js.map +0 -1
- package/lib/cjs/tests/testDeepQueryParams.js +0 -139
- package/lib/cjs/tests/testDeepQueryParams.js.map +0 -1
- package/lib/cjs/tests/testErrors.js +0 -253
- package/lib/cjs/tests/testErrors.js.map +0 -1
- package/lib/cjs/tests/testHandlers.js +0 -106
- package/lib/cjs/tests/testHandlers.js.map +0 -1
- package/lib/cjs/tests/testHeaderParams.js +0 -169
- package/lib/cjs/tests/testHeaderParams.js.map +0 -1
- package/lib/cjs/tests/testHeaders.js +0 -85
- package/lib/cjs/tests/testHeaders.js.map +0 -1
- package/lib/cjs/tests/testInheritanceController.js +0 -239
- package/lib/cjs/tests/testInheritanceController.js.map +0 -1
- package/lib/cjs/tests/testLocals.js +0 -63
- package/lib/cjs/tests/testLocals.js.map +0 -1
- package/lib/cjs/tests/testLocation.js +0 -42
- package/lib/cjs/tests/testLocation.js.map +0 -1
- package/lib/cjs/tests/testMiddlewares.js +0 -210
- package/lib/cjs/tests/testMiddlewares.js.map +0 -1
- package/lib/cjs/tests/testModule.js +0 -49
- package/lib/cjs/tests/testModule.js.map +0 -1
- package/lib/cjs/tests/testMulter.js +0 -169
- package/lib/cjs/tests/testMulter.js.map +0 -1
- package/lib/cjs/tests/testPathParams.js +0 -143
- package/lib/cjs/tests/testPathParams.js.map +0 -1
- package/lib/cjs/tests/testQueryParams.js +0 -241
- package/lib/cjs/tests/testQueryParams.js.map +0 -1
- package/lib/cjs/tests/testRedirect.js +0 -143
- package/lib/cjs/tests/testRedirect.js.map +0 -1
- package/lib/cjs/tests/testResponse.js +0 -569
- package/lib/cjs/tests/testResponse.js.map +0 -1
- package/lib/cjs/tests/testResponseFilter.js +0 -106
- package/lib/cjs/tests/testResponseFilter.js.map +0 -1
- package/lib/cjs/tests/testRouting.js +0 -77
- package/lib/cjs/tests/testRouting.js.map +0 -1
- package/lib/cjs/tests/testScopeRequest.js +0 -113
- package/lib/cjs/tests/testScopeRequest.js.map +0 -1
- package/lib/cjs/tests/testSession.js +0 -122
- package/lib/cjs/tests/testSession.js.map +0 -1
- package/lib/cjs/tests/testStatics.js +0 -58
- package/lib/cjs/tests/testStatics.js.map +0 -1
- package/lib/cjs/tests/testStream.js +0 -65
- package/lib/cjs/tests/testStream.js.map +0 -1
- package/lib/cjs/tests/testView.js +0 -83
- package/lib/cjs/tests/testView.js.map +0 -1
- package/lib/esm/package.json +0 -3
- package/lib/types-esm/components/PlatformTestSdk.d.ts +0 -9
- package/lib/types-esm/errors/CustomBadRequest.d.ts +0 -8
- package/lib/types-esm/errors/CustomInternalError.d.ts +0 -8
- package/lib/types-esm/index.d.ts +0 -40
- package/lib/types-esm/interfaces/PlatformTestingSdkOpts.d.ts +0 -8
- package/lib/types-esm/interfaces/index.d.ts +0 -4
- package/lib/types-esm/modules/feature/FeatureModule.d.ts +0 -2
- package/lib/types-esm/modules/feature/controllers/FeatureController.d.ts +0 -3
- package/lib/types-esm/tests/exports.d.ts +0 -2
- package/lib/types-esm/tests/testAcceptMime.d.ts +0 -2
- package/lib/types-esm/tests/testAuth.d.ts +0 -8
- package/lib/types-esm/tests/testBodyParams.d.ts +0 -3
- package/lib/types-esm/tests/testCache.d.ts +0 -2
- package/lib/types-esm/tests/testChildrenControllers.d.ts +0 -2
- package/lib/types-esm/tests/testCookies.d.ts +0 -11
- package/lib/types-esm/tests/testCustom404.d.ts +0 -2
- package/lib/types-esm/tests/testDeepQueryParams.d.ts +0 -3
- package/lib/types-esm/tests/testErrors.d.ts +0 -19
- package/lib/types-esm/tests/testHandlers.d.ts +0 -12
- package/lib/types-esm/tests/testHeaderParams.d.ts +0 -16
- package/lib/types-esm/tests/testHeaders.d.ts +0 -8
- package/lib/types-esm/tests/testInheritanceController.d.ts +0 -42
- package/lib/types-esm/tests/testLocals.d.ts +0 -2
- package/lib/types-esm/tests/testLocation.d.ts +0 -2
- package/lib/types-esm/tests/testMiddlewares.d.ts +0 -8
- package/lib/types-esm/tests/testModule.d.ts +0 -2
- package/lib/types-esm/tests/testMulter.d.ts +0 -21
- package/lib/types-esm/tests/testPathParams.d.ts +0 -2
- package/lib/types-esm/tests/testQueryParams.d.ts +0 -6
- package/lib/types-esm/tests/testRedirect.d.ts +0 -2
- package/lib/types-esm/tests/testResponse.d.ts +0 -16
- package/lib/types-esm/tests/testResponseFilter.d.ts +0 -2
- package/lib/types-esm/tests/testRouting.d.ts +0 -7
- package/lib/types-esm/tests/testScopeRequest.d.ts +0 -12
- package/lib/types-esm/tests/testSession.d.ts +0 -16
- package/lib/types-esm/tests/testStatics.d.ts +0 -2
- package/lib/types-esm/tests/testStream.d.ts +0 -2
- package/lib/types-esm/tests/testView.d.ts +0 -2
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.testResponseFilter = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@tsed/common");
|
|
6
|
-
const schema_1 = require("@tsed/schema");
|
|
7
|
-
const supertest_1 = tslib_1.__importDefault(require("supertest"));
|
|
8
|
-
class ResponseFilterModel {
|
|
9
|
-
}
|
|
10
|
-
tslib_1.__decorate([
|
|
11
|
-
(0, schema_1.Property)(),
|
|
12
|
-
tslib_1.__metadata("design:type", String)
|
|
13
|
-
], ResponseFilterModel.prototype, "id", void 0);
|
|
14
|
-
let TestResponseFilterCtrl = class TestResponseFilterCtrl {
|
|
15
|
-
testScenario1() {
|
|
16
|
-
return { id: "id" };
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
tslib_1.__decorate([
|
|
20
|
-
(0, common_1.Get)("/scenario1/:id"),
|
|
21
|
-
(0, schema_1.Returns)(200, ResponseFilterModel).Description("description"),
|
|
22
|
-
(0, schema_1.Returns)(200, String).ContentType("text/xml"),
|
|
23
|
-
tslib_1.__metadata("design:type", Function),
|
|
24
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
25
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
26
|
-
], TestResponseFilterCtrl.prototype, "testScenario1", null);
|
|
27
|
-
TestResponseFilterCtrl = tslib_1.__decorate([
|
|
28
|
-
(0, common_1.Controller)("/response-filter")
|
|
29
|
-
], TestResponseFilterCtrl);
|
|
30
|
-
let XmlResponseFilter = class XmlResponseFilter {
|
|
31
|
-
transform(data, ctx) {
|
|
32
|
-
return "<xml>test</xml>";
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
XmlResponseFilter = tslib_1.__decorate([
|
|
36
|
-
(0, common_1.ResponseFilter)("text/xml")
|
|
37
|
-
], XmlResponseFilter);
|
|
38
|
-
let AnyResponseFilter = class AnyResponseFilter {
|
|
39
|
-
transform(data, ctx) {
|
|
40
|
-
return { data, errors: [] };
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
AnyResponseFilter = tslib_1.__decorate([
|
|
44
|
-
(0, common_1.ResponseFilter)("*/*")
|
|
45
|
-
], AnyResponseFilter);
|
|
46
|
-
function testResponseFilter(options) {
|
|
47
|
-
let request;
|
|
48
|
-
beforeAll(common_1.PlatformTest.bootstrap(options.server, {
|
|
49
|
-
...options,
|
|
50
|
-
mount: {
|
|
51
|
-
"/rest": [TestResponseFilterCtrl]
|
|
52
|
-
},
|
|
53
|
-
responseFilters: [XmlResponseFilter, AnyResponseFilter]
|
|
54
|
-
}));
|
|
55
|
-
beforeAll(() => {
|
|
56
|
-
request = (0, supertest_1.default)(common_1.PlatformTest.callback());
|
|
57
|
-
});
|
|
58
|
-
afterAll(common_1.PlatformTest.reset);
|
|
59
|
-
describe("Scenario1: when have multiple contentType", () => {
|
|
60
|
-
describe("GET /rest/response/scenario1/:id", () => {
|
|
61
|
-
it("should return the xml format", async () => {
|
|
62
|
-
const response = await request
|
|
63
|
-
.get("/rest/response-filter/scenario1/10")
|
|
64
|
-
.set({
|
|
65
|
-
Accept: "text/xml"
|
|
66
|
-
})
|
|
67
|
-
.expect(200);
|
|
68
|
-
expect(response.text).toEqual("<xml>test</xml>");
|
|
69
|
-
});
|
|
70
|
-
it("should return the xml format when Accept text/xml and application/json", async () => {
|
|
71
|
-
const response = await request
|
|
72
|
-
.get("/rest/response-filter/scenario1/10")
|
|
73
|
-
.set({
|
|
74
|
-
Accept: "text/xml, application/json"
|
|
75
|
-
})
|
|
76
|
-
.expect(200);
|
|
77
|
-
expect(response.text).toEqual("<xml>test</xml>");
|
|
78
|
-
});
|
|
79
|
-
it("should return the json format", async () => {
|
|
80
|
-
const response = await request
|
|
81
|
-
.get("/rest/response-filter/scenario1/10")
|
|
82
|
-
.set({
|
|
83
|
-
Accept: "application/json"
|
|
84
|
-
})
|
|
85
|
-
.expect(200);
|
|
86
|
-
expect(response.body).toEqual({
|
|
87
|
-
data: {
|
|
88
|
-
id: "id"
|
|
89
|
-
},
|
|
90
|
-
errors: []
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
it("should return the json format by default", async () => {
|
|
94
|
-
const response = await request.get("/rest/response-filter/scenario1/10").expect(200);
|
|
95
|
-
expect(response.body).toEqual({
|
|
96
|
-
data: {
|
|
97
|
-
id: "id"
|
|
98
|
-
},
|
|
99
|
-
errors: []
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
exports.testResponseFilter = testResponseFilter;
|
|
106
|
-
//# sourceMappingURL=testResponseFilter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testResponseFilter.js","sourceRoot":"","sources":["../../../src/tests/testResponseFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.testRouting = exports.TestRoutingController = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@tsed/common");
|
|
6
|
-
const supertest_1 = tslib_1.__importDefault(require("supertest"));
|
|
7
|
-
const stub = vi.fn();
|
|
8
|
-
let TestRoutingController = class TestRoutingController {
|
|
9
|
-
scenario1() {
|
|
10
|
-
stub("scenario1");
|
|
11
|
-
return "test1";
|
|
12
|
-
}
|
|
13
|
-
scenario2() {
|
|
14
|
-
stub("scenario2");
|
|
15
|
-
return "shouldNotRun";
|
|
16
|
-
}
|
|
17
|
-
scenario3() {
|
|
18
|
-
stub("scenario3");
|
|
19
|
-
return "test3";
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
tslib_1.__decorate([
|
|
23
|
-
(0, common_1.Get)("/1"),
|
|
24
|
-
tslib_1.__metadata("design:type", Function),
|
|
25
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
26
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
27
|
-
], TestRoutingController.prototype, "scenario1", null);
|
|
28
|
-
tslib_1.__decorate([
|
|
29
|
-
(0, common_1.Put)("") // empty string has an effect on the calls orders
|
|
30
|
-
,
|
|
31
|
-
tslib_1.__metadata("design:type", Function),
|
|
32
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
33
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
34
|
-
], TestRoutingController.prototype, "scenario2", null);
|
|
35
|
-
tslib_1.__decorate([
|
|
36
|
-
(0, common_1.Get)("/3"),
|
|
37
|
-
tslib_1.__metadata("design:type", Function),
|
|
38
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
39
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
40
|
-
], TestRoutingController.prototype, "scenario3", null);
|
|
41
|
-
TestRoutingController = tslib_1.__decorate([
|
|
42
|
-
(0, common_1.Controller)("/routing")
|
|
43
|
-
], TestRoutingController);
|
|
44
|
-
exports.TestRoutingController = TestRoutingController;
|
|
45
|
-
function testRouting(options) {
|
|
46
|
-
let request;
|
|
47
|
-
beforeAll(common_1.PlatformTest.bootstrap(options.server, {
|
|
48
|
-
...options,
|
|
49
|
-
mount: {
|
|
50
|
-
"/rest": [TestRoutingController]
|
|
51
|
-
}
|
|
52
|
-
}));
|
|
53
|
-
beforeAll(() => {
|
|
54
|
-
request = (0, supertest_1.default)(common_1.PlatformTest.callback());
|
|
55
|
-
});
|
|
56
|
-
afterAll(common_1.PlatformTest.reset);
|
|
57
|
-
afterEach(() => {
|
|
58
|
-
vi.resetAllMocks();
|
|
59
|
-
});
|
|
60
|
-
it("Scenario1: should call scenario1 only", async () => {
|
|
61
|
-
const { text } = await request.get("/rest/routing/1").expect(200);
|
|
62
|
-
expect(text).toEqual("test1");
|
|
63
|
-
expect(stub).toHaveBeenCalledWith("scenario1");
|
|
64
|
-
});
|
|
65
|
-
it("Scenario2: should call scenario2 only", async () => {
|
|
66
|
-
const { text } = await request.put("/rest/routing/").expect(200);
|
|
67
|
-
expect(text).toEqual("shouldNotRun");
|
|
68
|
-
expect(stub).toHaveBeenCalledWith("scenario2");
|
|
69
|
-
});
|
|
70
|
-
it("Scenario3: should call scenario3 only", async () => {
|
|
71
|
-
const { text } = await request.get("/rest/routing/3").expect(200);
|
|
72
|
-
expect(text).toEqual("test3");
|
|
73
|
-
expect(stub).toHaveBeenCalledWith("scenario3");
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
exports.testRouting = testRouting;
|
|
77
|
-
//# sourceMappingURL=testRouting.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testRouting.js","sourceRoot":"","sources":["../../../src/tests/testRouting.ts"],"names":[],"mappings":";;;;AAAA,yCAAgE;AAChE,kEAAkC;AAGlC,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAGd,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEhC,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,CAAC;QAElB,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,CAAC;QAElB,OAAO,cAAc,CAAC;IACxB,CAAC;IAGD,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,CAAC;QAElB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AApBC;IAAC,IAAA,YAAG,EAAC,IAAI,CAAC;;;;sDAKT;AAED;IAAC,IAAA,YAAG,EAAC,EAAE,CAAC,CAAC,iDAAiD;;;;;sDAKzD;AAED;IAAC,IAAA,YAAG,EAAC,IAAI,CAAC;;;;sDAKT;AApBU,qBAAqB;IADjC,IAAA,mBAAU,EAAC,UAAU,CAAC;GACV,qBAAqB,CAqBjC;AArBY,sDAAqB;AAuBlC,SAAgB,WAAW,CAAC,OAA+B;IACzD,IAAI,OAAwB,CAAC;IAE7B,SAAS,CACP,qBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;QACrC,GAAG,OAAO;QACV,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,qBAAqB,CAAC;SACjC;KACF,CAAC,CACH,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,IAAA,mBAAS,EAAC,qBAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,qBAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AApCD,kCAoCC"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.testScopeRequest = exports.ScopeRequestCtrl = exports.ScopeRequestService = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@tsed/common");
|
|
6
|
-
const supertest_1 = tslib_1.__importDefault(require("supertest"));
|
|
7
|
-
let ScopeRequestService = class ScopeRequestService {
|
|
8
|
-
};
|
|
9
|
-
ScopeRequestService = tslib_1.__decorate([
|
|
10
|
-
(0, common_1.Service)(),
|
|
11
|
-
(0, common_1.Scope)(common_1.ProviderScope.REQUEST)
|
|
12
|
-
], ScopeRequestService);
|
|
13
|
-
exports.ScopeRequestService = ScopeRequestService;
|
|
14
|
-
let ScopeRequestCtrl = class ScopeRequestCtrl {
|
|
15
|
-
constructor(scopeRequestService) {
|
|
16
|
-
this.scopeRequestService = scopeRequestService;
|
|
17
|
-
}
|
|
18
|
-
$onDestroy() {
|
|
19
|
-
this.userId = null;
|
|
20
|
-
}
|
|
21
|
-
testPerRequest(userId) {
|
|
22
|
-
this.scopeRequestService.user = userId;
|
|
23
|
-
this.userId = userId;
|
|
24
|
-
return new Promise((resolve, reject) => {
|
|
25
|
-
if (userId === "0") {
|
|
26
|
-
setTimeout(() => {
|
|
27
|
-
resolve({ userId, idSrv: this.scopeRequestService.user, idCtrl: this.userId });
|
|
28
|
-
}, 500);
|
|
29
|
-
}
|
|
30
|
-
if (userId === "1") {
|
|
31
|
-
setTimeout(() => {
|
|
32
|
-
resolve({ userId, idSrv: this.scopeRequestService.user, idCtrl: this.userId });
|
|
33
|
-
}, 300);
|
|
34
|
-
}
|
|
35
|
-
if (userId === "2") {
|
|
36
|
-
setTimeout(() => {
|
|
37
|
-
resolve({ userId, idSrv: this.scopeRequestService.user, idCtrl: this.userId });
|
|
38
|
-
}, 150);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
tslib_1.__decorate([
|
|
44
|
-
(0, common_1.Get)("/:id"),
|
|
45
|
-
tslib_1.__param(0, (0, common_1.PathParams)("id")),
|
|
46
|
-
tslib_1.__metadata("design:type", Function),
|
|
47
|
-
tslib_1.__metadata("design:paramtypes", [String]),
|
|
48
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
49
|
-
], ScopeRequestCtrl.prototype, "testPerRequest", null);
|
|
50
|
-
ScopeRequestCtrl = tslib_1.__decorate([
|
|
51
|
-
(0, common_1.Controller)("/scopes-request"),
|
|
52
|
-
(0, common_1.Scope)(common_1.ProviderScope.REQUEST),
|
|
53
|
-
tslib_1.__metadata("design:paramtypes", [ScopeRequestService])
|
|
54
|
-
], ScopeRequestCtrl);
|
|
55
|
-
exports.ScopeRequestCtrl = ScopeRequestCtrl;
|
|
56
|
-
function testScopeRequest(options) {
|
|
57
|
-
let request;
|
|
58
|
-
beforeAll(common_1.PlatformTest.bootstrap(options.server, {
|
|
59
|
-
...options,
|
|
60
|
-
mount: {
|
|
61
|
-
"/rest": [ScopeRequestCtrl]
|
|
62
|
-
}
|
|
63
|
-
}));
|
|
64
|
-
beforeAll(() => {
|
|
65
|
-
request = (0, supertest_1.default)(common_1.PlatformTest.callback());
|
|
66
|
-
});
|
|
67
|
-
afterAll(common_1.PlatformTest.reset);
|
|
68
|
-
describe("GET /rest/scopes-request/:id", () => {
|
|
69
|
-
const send = (id) => new Promise((resolve, reject) => {
|
|
70
|
-
request
|
|
71
|
-
.get(`/rest/scopes-request/${id}`)
|
|
72
|
-
.expect(200)
|
|
73
|
-
.end((err, response) => {
|
|
74
|
-
if (err) {
|
|
75
|
-
reject(err);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
resolve({ id, ...JSON.parse(response.text) });
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
it("should respond with the right userId per request", () => {
|
|
83
|
-
const promises = [];
|
|
84
|
-
promises.push(send("0"));
|
|
85
|
-
promises.push(send("1"));
|
|
86
|
-
promises.push(send("2"));
|
|
87
|
-
return Promise.all(promises).then((responses) => {
|
|
88
|
-
expect(responses).toEqual([
|
|
89
|
-
{
|
|
90
|
-
id: "0",
|
|
91
|
-
idCtrl: "0",
|
|
92
|
-
idSrv: "0",
|
|
93
|
-
userId: "0"
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
id: "1",
|
|
97
|
-
idCtrl: "1",
|
|
98
|
-
idSrv: "1",
|
|
99
|
-
userId: "1"
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
id: "2",
|
|
103
|
-
idCtrl: "2",
|
|
104
|
-
idSrv: "2",
|
|
105
|
-
userId: "2"
|
|
106
|
-
}
|
|
107
|
-
]);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
exports.testScopeRequest = testScopeRequest;
|
|
113
|
-
//# sourceMappingURL=testScopeRequest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testScopeRequest.js","sourceRoot":"","sources":["../../../src/tests/testScopeRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.testSession = exports.SessionCtrl = exports.User = exports.UserCreation = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@tsed/common");
|
|
6
|
-
const exceptions_1 = require("@tsed/exceptions");
|
|
7
|
-
const schema_1 = require("@tsed/schema");
|
|
8
|
-
const supertest_1 = tslib_1.__importDefault(require("supertest"));
|
|
9
|
-
const util_1 = require("util");
|
|
10
|
-
class UserCreation {
|
|
11
|
-
}
|
|
12
|
-
tslib_1.__decorate([
|
|
13
|
-
(0, schema_1.Property)(),
|
|
14
|
-
tslib_1.__metadata("design:type", String)
|
|
15
|
-
], UserCreation.prototype, "name", void 0);
|
|
16
|
-
tslib_1.__decorate([
|
|
17
|
-
(0, schema_1.Required)(),
|
|
18
|
-
(0, schema_1.Email)(),
|
|
19
|
-
(0, schema_1.Allow)(null),
|
|
20
|
-
tslib_1.__metadata("design:type", String)
|
|
21
|
-
], UserCreation.prototype, "email", void 0);
|
|
22
|
-
tslib_1.__decorate([
|
|
23
|
-
(0, schema_1.Required)(),
|
|
24
|
-
(0, schema_1.MinLength)(6),
|
|
25
|
-
(0, schema_1.Allow)(null),
|
|
26
|
-
tslib_1.__metadata("design:type", String)
|
|
27
|
-
], UserCreation.prototype, "password", void 0);
|
|
28
|
-
exports.UserCreation = UserCreation;
|
|
29
|
-
class User extends UserCreation {
|
|
30
|
-
}
|
|
31
|
-
tslib_1.__decorate([
|
|
32
|
-
(0, schema_1.Ignore)(),
|
|
33
|
-
tslib_1.__metadata("design:type", String)
|
|
34
|
-
], User.prototype, "password", void 0);
|
|
35
|
-
exports.User = User;
|
|
36
|
-
let SessionCtrl = class SessionCtrl {
|
|
37
|
-
connect(session, user) {
|
|
38
|
-
session.user = user;
|
|
39
|
-
return Promise.resolve(user);
|
|
40
|
-
}
|
|
41
|
-
userInfo(user) {
|
|
42
|
-
if (!user) {
|
|
43
|
-
return Promise.reject(new exceptions_1.NotFound("User not found"));
|
|
44
|
-
}
|
|
45
|
-
return Promise.resolve(user);
|
|
46
|
-
}
|
|
47
|
-
logout(req) {
|
|
48
|
-
switch (this.platformName) {
|
|
49
|
-
case "koa":
|
|
50
|
-
return Promise.resolve((req.ctx.session = null));
|
|
51
|
-
case "express":
|
|
52
|
-
delete req.session.user;
|
|
53
|
-
return (0, util_1.promisify)(req.session.destroy.bind(req.session))();
|
|
54
|
-
}
|
|
55
|
-
return Promise.resolve();
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
tslib_1.__decorate([
|
|
59
|
-
(0, common_1.Constant)("PLATFORM_NAME"),
|
|
60
|
-
tslib_1.__metadata("design:type", String)
|
|
61
|
-
], SessionCtrl.prototype, "platformName", void 0);
|
|
62
|
-
tslib_1.__decorate([
|
|
63
|
-
(0, common_1.Post)("/connect"),
|
|
64
|
-
tslib_1.__param(0, (0, common_1.Session)()),
|
|
65
|
-
tslib_1.__param(1, (0, common_1.BodyParams)()),
|
|
66
|
-
tslib_1.__metadata("design:type", Function),
|
|
67
|
-
tslib_1.__metadata("design:paramtypes", [Object, UserCreation]),
|
|
68
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
69
|
-
], SessionCtrl.prototype, "connect", null);
|
|
70
|
-
tslib_1.__decorate([
|
|
71
|
-
(0, common_1.Get)("/userinfo"),
|
|
72
|
-
(0, schema_1.Returns)(200, User),
|
|
73
|
-
tslib_1.__param(0, (0, common_1.Session)("user")),
|
|
74
|
-
tslib_1.__metadata("design:type", Function),
|
|
75
|
-
tslib_1.__metadata("design:paramtypes", [User]),
|
|
76
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
77
|
-
], SessionCtrl.prototype, "userInfo", null);
|
|
78
|
-
tslib_1.__decorate([
|
|
79
|
-
(0, common_1.Get)("/logout"),
|
|
80
|
-
(0, schema_1.Returns)(204),
|
|
81
|
-
tslib_1.__param(0, (0, common_1.Req)()),
|
|
82
|
-
tslib_1.__metadata("design:type", Function),
|
|
83
|
-
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
84
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
85
|
-
], SessionCtrl.prototype, "logout", null);
|
|
86
|
-
SessionCtrl = tslib_1.__decorate([
|
|
87
|
-
(0, common_1.Controller)("/session")
|
|
88
|
-
], SessionCtrl);
|
|
89
|
-
exports.SessionCtrl = SessionCtrl;
|
|
90
|
-
function testSession(options) {
|
|
91
|
-
let request;
|
|
92
|
-
beforeAll(common_1.PlatformTest.bootstrap(options.server, {
|
|
93
|
-
...options,
|
|
94
|
-
mount: {
|
|
95
|
-
"/rest": [SessionCtrl]
|
|
96
|
-
}
|
|
97
|
-
}));
|
|
98
|
-
beforeAll(() => {
|
|
99
|
-
request = supertest_1.default.agent(common_1.PlatformTest.callback());
|
|
100
|
-
});
|
|
101
|
-
afterAll(common_1.PlatformTest.reset);
|
|
102
|
-
describe("Scenario1: POST /rest/session/connected", () => {
|
|
103
|
-
it("should keep connected user in session and destroy session", async () => {
|
|
104
|
-
await request.get("/rest/session/userinfo").expect(404);
|
|
105
|
-
await request.post("/rest/session/connect").send({
|
|
106
|
-
name: "name",
|
|
107
|
-
email: "test@test.fr",
|
|
108
|
-
password: "password1234"
|
|
109
|
-
});
|
|
110
|
-
// @ts-ignore
|
|
111
|
-
const response = await request.get("/rest/session/userinfo").expect(200);
|
|
112
|
-
expect(response.body).toEqual({
|
|
113
|
-
email: "test@test.fr",
|
|
114
|
-
name: "name"
|
|
115
|
-
});
|
|
116
|
-
await request.get("/rest/session/logout").expect(204);
|
|
117
|
-
await request.get("/rest/session/userinfo").expect(404);
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
exports.testSession = testSession;
|
|
122
|
-
//# sourceMappingURL=testSession.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testSession.js","sourceRoot":"","sources":["../../../src/tests/testSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.testStatics = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@tsed/common");
|
|
6
|
-
const core_1 = require("@tsed/core");
|
|
7
|
-
const di_1 = require("@tsed/di");
|
|
8
|
-
const platform_router_1 = require("@tsed/platform-router");
|
|
9
|
-
const fs_1 = require("fs");
|
|
10
|
-
const supertest_1 = tslib_1.__importDefault(require("supertest"));
|
|
11
|
-
let CustomStaticsCtrl = class CustomStaticsCtrl {
|
|
12
|
-
constructor(router, config) {
|
|
13
|
-
router.statics("/", {
|
|
14
|
-
root: String((0, core_1.getValue)(config, "statics./"))
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
CustomStaticsCtrl = tslib_1.__decorate([
|
|
19
|
-
(0, common_1.Controller)("/statics"),
|
|
20
|
-
tslib_1.__param(1, (0, di_1.Configuration)()),
|
|
21
|
-
tslib_1.__metadata("design:paramtypes", [platform_router_1.PlatformRouter, Object])
|
|
22
|
-
], CustomStaticsCtrl);
|
|
23
|
-
function testStatics(options) {
|
|
24
|
-
let request;
|
|
25
|
-
beforeEach(common_1.PlatformTest.bootstrap(options.server, {
|
|
26
|
-
...options,
|
|
27
|
-
mount: {
|
|
28
|
-
"/rest": [CustomStaticsCtrl]
|
|
29
|
-
}
|
|
30
|
-
}));
|
|
31
|
-
beforeEach(() => {
|
|
32
|
-
request = (0, supertest_1.default)(common_1.PlatformTest.callback());
|
|
33
|
-
});
|
|
34
|
-
afterEach(common_1.PlatformTest.reset);
|
|
35
|
-
it("should return index HTML (1)", async () => {
|
|
36
|
-
const response = await request.get("/").expect(200);
|
|
37
|
-
expect(response.text).toEqual((0, fs_1.readFileSync)(`${options.rootDir}/public/index.html`, { encoding: "utf8" }));
|
|
38
|
-
});
|
|
39
|
-
it("should return index HTML (2)", async () => {
|
|
40
|
-
const response = await request.get("/index.html").expect(200);
|
|
41
|
-
expect(response.text).toEqual((0, fs_1.readFileSync)(`${options.rootDir}/public/index.html`, { encoding: "utf8" }));
|
|
42
|
-
});
|
|
43
|
-
it("should return index HTML (3)", async () => {
|
|
44
|
-
const response = await request.get("/rest/statics/index.html").expect(200);
|
|
45
|
-
expect(response.text).toEqual((0, fs_1.readFileSync)(`${options.rootDir}/public/index.html`, { encoding: "utf8" }));
|
|
46
|
-
});
|
|
47
|
-
it("should return 404", async () => {
|
|
48
|
-
const response = await request.get("/index-te.html").expect(404);
|
|
49
|
-
expect(response.body).toEqual({
|
|
50
|
-
errors: [],
|
|
51
|
-
message: 'Resource "/index-te.html" not found',
|
|
52
|
-
name: "NOT_FOUND",
|
|
53
|
-
status: 404
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
exports.testStatics = testStatics;
|
|
58
|
-
//# sourceMappingURL=testStatics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testStatics.js","sourceRoot":"","sources":["../../../src/tests/testStatics.ts"],"names":[],"mappings":";;;;AAAA,yCAAsD;AACtD,qCAAoC;AACpC,iCAAuC;AACvC,2DAAqD;AACrD,2BAAgC;AAChC,kEAAkC;AAGlC,IACM,iBAAiB,GADvB,MACM,iBAAiB;IACrB,YAAY,MAAsB,EAAmB,MAAqB;QACxE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YAClB,IAAI,EAAE,MAAM,CAAC,IAAA,eAAQ,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AANK,iBAAiB;IADtB,IAAA,mBAAU,EAAC,UAAU,CAAC;IAEgB,mBAAA,IAAA,kBAAa,GAAE,CAAA;6CAAhC,gCAAc;GAD9B,iBAAiB,CAMtB;AAED,SAAgB,WAAW,CAAC,OAA+B;IACzD,IAAI,OAAwB,CAAC;IAC7B,UAAU,CACR,qBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;QACrC,GAAG,OAAO;QACV,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,iBAAiB,CAAC;SAC7B;KACF,CAAC,CACH,CAAC;IACF,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,IAAA,mBAAS,EAAC,qBAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,qBAAY,CAAC,KAAK,CAAC,CAAC;IAE9B,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEpD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAA,iBAAY,EAAC,GAAG,OAAO,CAAC,OAAO,oBAAoB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE9D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAA,iBAAY,EAAC,GAAG,OAAO,CAAC,OAAO,oBAAoB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE3E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAA,iBAAY,EAAC,GAAG,OAAO,CAAC,OAAO,oBAAoB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEjE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,qCAAqC;YAC9C,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,GAAG;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AA3CD,kCA2CC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.testStream = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const common_1 = require("@tsed/common");
|
|
6
|
-
const schema_1 = require("@tsed/schema");
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path_1 = require("path");
|
|
9
|
-
const supertest_1 = tslib_1.__importDefault(require("supertest"));
|
|
10
|
-
const rootDir = __dirname; // automatically replaced by __dirname on build
|
|
11
|
-
let TestStreamCtrl = class TestStreamCtrl {
|
|
12
|
-
testScenario1() {
|
|
13
|
-
return (0, fs_1.createReadStream)((0, path_1.join)(rootDir, "../data/response.data.json"), "utf-8");
|
|
14
|
-
}
|
|
15
|
-
testScenario2() {
|
|
16
|
-
return Promise.resolve((0, fs_1.createReadStream)((0, path_1.join)(rootDir, "../data/response.data.json"), "utf-8"));
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
tslib_1.__decorate([
|
|
20
|
-
(0, common_1.Get)("/scenario1"),
|
|
21
|
-
(0, schema_1.ContentType)("application/json"),
|
|
22
|
-
tslib_1.__metadata("design:type", Function),
|
|
23
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
24
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
25
|
-
], TestStreamCtrl.prototype, "testScenario1", null);
|
|
26
|
-
tslib_1.__decorate([
|
|
27
|
-
(0, common_1.Get)("/scenario1b"),
|
|
28
|
-
(0, schema_1.ContentType)("application/json"),
|
|
29
|
-
tslib_1.__metadata("design:type", Function),
|
|
30
|
-
tslib_1.__metadata("design:paramtypes", []),
|
|
31
|
-
tslib_1.__metadata("design:returntype", void 0)
|
|
32
|
-
], TestStreamCtrl.prototype, "testScenario2", null);
|
|
33
|
-
TestStreamCtrl = tslib_1.__decorate([
|
|
34
|
-
(0, common_1.Controller)("/stream")
|
|
35
|
-
], TestStreamCtrl);
|
|
36
|
-
function testStream(options) {
|
|
37
|
-
let request;
|
|
38
|
-
beforeAll(common_1.PlatformTest.bootstrap(options.server, {
|
|
39
|
-
...options,
|
|
40
|
-
mount: {
|
|
41
|
-
"/rest": [TestStreamCtrl]
|
|
42
|
-
}
|
|
43
|
-
}));
|
|
44
|
-
beforeAll(() => {
|
|
45
|
-
request = (0, supertest_1.default)(common_1.PlatformTest.callback());
|
|
46
|
-
});
|
|
47
|
-
afterAll(common_1.PlatformTest.reset);
|
|
48
|
-
describe("Scenario1: when endpoint return a stream", () => {
|
|
49
|
-
describe("GET /rest/stream/scenario1", () => {
|
|
50
|
-
it("should return a body", async () => {
|
|
51
|
-
const response = await request.get("/rest/stream/scenario1");
|
|
52
|
-
expect(response.headers["content-type"]).toContain("application/json");
|
|
53
|
-
expect(response.body).toEqual({ id: "1" });
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
describe("GET /rest/stream/scenario1b", () => {
|
|
57
|
-
it("should return a body", async () => {
|
|
58
|
-
const response = await request.get("/rest/stream/scenario1b");
|
|
59
|
-
expect(response.body).toEqual({ id: "1" });
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
exports.testStream = testStream;
|
|
65
|
-
//# sourceMappingURL=testStream.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"testStream.js","sourceRoot":"","sources":["../../../src/tests/testStream.ts"],"names":[],"mappings":";;;;AAAA,yCAA2D;AAC3D,yCAAyC;AACzC,2BAAoC;AACpC,+BAA0B;AAC1B,kEAAkC;AAGlC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,yDAAyD;AAGpF,IAAM,cAAc,GAApB,MAAM,cAAc;IAGlB,aAAa;QACX,OAAO,IAAA,qBAAgB,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,4BAA4B,CAAC,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAID,aAAa;QACX,OAAO,OAAO,CAAC,OAAO,CAAC,IAAA,qBAAgB,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,4BAA4B,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACjG,CAAC;CACF,CAAA;AAXC;IAAC,IAAA,YAAG,EAAC,YAAY,CAAC;IACjB,IAAA,oBAAW,EAAC,kBAAkB,CAAC;;;;mDAG/B;AAED;IAAC,IAAA,YAAG,EAAC,aAAa,CAAC;IAClB,IAAA,oBAAW,EAAC,kBAAkB,CAAC;;;;mDAG/B;AAXG,cAAc;IADnB,IAAA,mBAAU,EAAC,SAAS,CAAC;GAChB,cAAc,CAYnB;AAED,SAAgB,UAAU,CAAC,OAA+B;IACxD,IAAI,OAAwB,CAAC;IAE7B,SAAS,CACP,qBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;QACrC,GAAG,OAAO;QACV,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,cAAc,CAAC;SAC1B;KACF,CAAC,CACH,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,IAAA,mBAAS,EAAC,qBAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,qBAAY,CAAC,KAAK,CAAC,CAAC;IAE7B,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACxD,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;YAC1C,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;gBACpC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBAE7D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBACvE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAC,EAAE,EAAE,GAAG,EAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC3C,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;gBACpC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBAE9D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAC,EAAE,EAAE,GAAG,EAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAlCD,gCAkCC"}
|