@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.
Files changed (185) hide show
  1. package/lib/esm/components/PlatformTestSdk.js +1 -1
  2. package/lib/esm/components/PlatformTestSdk.js.map +1 -1
  3. package/lib/esm/modules/feature/FeatureModule.js.map +1 -1
  4. package/lib/esm/modules/feature/controllers/FeatureController.js +2 -1
  5. package/lib/esm/modules/feature/controllers/FeatureController.js.map +1 -1
  6. package/lib/esm/tests/exports.js +1 -1
  7. package/lib/esm/tests/exports.js.map +1 -1
  8. package/lib/esm/tests/testAcceptMime.js +3 -2
  9. package/lib/esm/tests/testAcceptMime.js.map +1 -1
  10. package/lib/esm/tests/testAuth.js +3 -2
  11. package/lib/esm/tests/testAuth.js.map +1 -1
  12. package/lib/esm/tests/testBodyParams.js +2 -1
  13. package/lib/esm/tests/testBodyParams.js.map +1 -1
  14. package/lib/esm/tests/testCache.js +4 -3
  15. package/lib/esm/tests/testCache.js.map +1 -1
  16. package/lib/esm/tests/testChildrenControllers.js +3 -1
  17. package/lib/esm/tests/testChildrenControllers.js.map +1 -1
  18. package/lib/esm/tests/testCookies.js +3 -1
  19. package/lib/esm/tests/testCookies.js.map +1 -1
  20. package/lib/esm/tests/testCustom404.js +1 -0
  21. package/lib/esm/tests/testCustom404.js.map +1 -1
  22. package/lib/esm/tests/testDeepQueryParams.js +3 -2
  23. package/lib/esm/tests/testDeepQueryParams.js.map +1 -1
  24. package/lib/esm/tests/testErrors.js +9 -8
  25. package/lib/esm/tests/testErrors.js.map +1 -1
  26. package/lib/esm/tests/testHandlers.js +3 -2
  27. package/lib/esm/tests/testHandlers.js.map +1 -1
  28. package/lib/esm/tests/testHeaderParams.js +3 -2
  29. package/lib/esm/tests/testHeaderParams.js.map +1 -1
  30. package/lib/esm/tests/testHeaders.js +7 -6
  31. package/lib/esm/tests/testHeaders.js.map +1 -1
  32. package/lib/esm/tests/testInheritanceController.js +4 -3
  33. package/lib/esm/tests/testInheritanceController.js.map +1 -1
  34. package/lib/esm/tests/testLocals.js +3 -1
  35. package/lib/esm/tests/testLocals.js.map +1 -1
  36. package/lib/esm/tests/testLocation.js +3 -2
  37. package/lib/esm/tests/testLocation.js.map +1 -1
  38. package/lib/esm/tests/testMiddlewares.js +3 -1
  39. package/lib/esm/tests/testMiddlewares.js.map +1 -1
  40. package/lib/esm/tests/testModule.js +3 -1
  41. package/lib/esm/tests/testModule.js.map +1 -1
  42. package/lib/esm/tests/testMulter.js +1 -0
  43. package/lib/esm/tests/testMulter.js.map +1 -1
  44. package/lib/esm/tests/testPathParams.js +3 -2
  45. package/lib/esm/tests/testPathParams.js.map +1 -1
  46. package/lib/esm/tests/testQueryParams.js +3 -2
  47. package/lib/esm/tests/testQueryParams.js.map +1 -1
  48. package/lib/esm/tests/testRedirect.js +4 -2
  49. package/lib/esm/tests/testRedirect.js.map +1 -1
  50. package/lib/esm/tests/testResponse.js +5 -4
  51. package/lib/esm/tests/testResponse.js.map +1 -1
  52. package/lib/esm/tests/testResponseFilter.js +5 -4
  53. package/lib/esm/tests/testResponseFilter.js.map +1 -1
  54. package/lib/esm/tests/testRouting.js +3 -1
  55. package/lib/esm/tests/testRouting.js.map +1 -1
  56. package/lib/esm/tests/testScopeRequest.js +3 -1
  57. package/lib/esm/tests/testScopeRequest.js.map +1 -1
  58. package/lib/esm/tests/testSession.js +3 -2
  59. package/lib/esm/tests/testSession.js.map +1 -1
  60. package/lib/esm/tests/testStatics.js +1 -0
  61. package/lib/esm/tests/testStatics.js.map +1 -1
  62. package/lib/esm/tests/testStream.js +3 -2
  63. package/lib/esm/tests/testStream.js.map +1 -1
  64. package/lib/esm/tests/testView.js +4 -2
  65. package/lib/esm/tests/testView.js.map +1 -1
  66. package/lib/types/components/PlatformTestSdk.d.ts +1 -1
  67. package/package.json +26 -24
  68. package/lib/cjs/components/PlatformTestSdk.js +0 -30
  69. package/lib/cjs/components/PlatformTestSdk.js.map +0 -1
  70. package/lib/cjs/data/response.data.json +0 -3
  71. package/lib/cjs/data/swagger.json +0 -32
  72. package/lib/cjs/errors/CustomBadRequest.js +0 -17
  73. package/lib/cjs/errors/CustomBadRequest.js.map +0 -1
  74. package/lib/cjs/errors/CustomInternalError.js +0 -17
  75. package/lib/cjs/errors/CustomInternalError.js.map +0 -1
  76. package/lib/cjs/index.js +0 -44
  77. package/lib/cjs/index.js.map +0 -1
  78. package/lib/cjs/interfaces/PlatformTestingSdkOpts.js +0 -3
  79. package/lib/cjs/interfaces/PlatformTestingSdkOpts.js.map +0 -1
  80. package/lib/cjs/interfaces/index.js +0 -8
  81. package/lib/cjs/interfaces/index.js.map +0 -1
  82. package/lib/cjs/modules/feature/FeatureModule.js +0 -17
  83. package/lib/cjs/modules/feature/FeatureModule.js.map +0 -1
  84. package/lib/cjs/modules/feature/controllers/FeatureController.js +0 -23
  85. package/lib/cjs/modules/feature/controllers/FeatureController.js.map +0 -1
  86. package/lib/cjs/package.json +0 -3
  87. package/lib/cjs/tests/exports.js +0 -68
  88. package/lib/cjs/tests/exports.js.map +0 -1
  89. package/lib/cjs/tests/testAcceptMime.js +0 -103
  90. package/lib/cjs/tests/testAcceptMime.js.map +0 -1
  91. package/lib/cjs/tests/testAuth.js +0 -343
  92. package/lib/cjs/tests/testAuth.js.map +0 -1
  93. package/lib/cjs/tests/testBodyParams.js +0 -539
  94. package/lib/cjs/tests/testBodyParams.js.map +0 -1
  95. package/lib/cjs/tests/testCache.js +0 -299
  96. package/lib/cjs/tests/testCache.js.map +0 -1
  97. package/lib/cjs/tests/testChildrenControllers.js +0 -64
  98. package/lib/cjs/tests/testChildrenControllers.js.map +0 -1
  99. package/lib/cjs/tests/testCookies.js +0 -45
  100. package/lib/cjs/tests/testCookies.js.map +0 -1
  101. package/lib/cjs/tests/testCustom404.js +0 -32
  102. package/lib/cjs/tests/testCustom404.js.map +0 -1
  103. package/lib/cjs/tests/testDeepQueryParams.js +0 -139
  104. package/lib/cjs/tests/testDeepQueryParams.js.map +0 -1
  105. package/lib/cjs/tests/testErrors.js +0 -253
  106. package/lib/cjs/tests/testErrors.js.map +0 -1
  107. package/lib/cjs/tests/testHandlers.js +0 -106
  108. package/lib/cjs/tests/testHandlers.js.map +0 -1
  109. package/lib/cjs/tests/testHeaderParams.js +0 -169
  110. package/lib/cjs/tests/testHeaderParams.js.map +0 -1
  111. package/lib/cjs/tests/testHeaders.js +0 -85
  112. package/lib/cjs/tests/testHeaders.js.map +0 -1
  113. package/lib/cjs/tests/testInheritanceController.js +0 -239
  114. package/lib/cjs/tests/testInheritanceController.js.map +0 -1
  115. package/lib/cjs/tests/testLocals.js +0 -63
  116. package/lib/cjs/tests/testLocals.js.map +0 -1
  117. package/lib/cjs/tests/testLocation.js +0 -42
  118. package/lib/cjs/tests/testLocation.js.map +0 -1
  119. package/lib/cjs/tests/testMiddlewares.js +0 -210
  120. package/lib/cjs/tests/testMiddlewares.js.map +0 -1
  121. package/lib/cjs/tests/testModule.js +0 -49
  122. package/lib/cjs/tests/testModule.js.map +0 -1
  123. package/lib/cjs/tests/testMulter.js +0 -169
  124. package/lib/cjs/tests/testMulter.js.map +0 -1
  125. package/lib/cjs/tests/testPathParams.js +0 -143
  126. package/lib/cjs/tests/testPathParams.js.map +0 -1
  127. package/lib/cjs/tests/testQueryParams.js +0 -241
  128. package/lib/cjs/tests/testQueryParams.js.map +0 -1
  129. package/lib/cjs/tests/testRedirect.js +0 -143
  130. package/lib/cjs/tests/testRedirect.js.map +0 -1
  131. package/lib/cjs/tests/testResponse.js +0 -569
  132. package/lib/cjs/tests/testResponse.js.map +0 -1
  133. package/lib/cjs/tests/testResponseFilter.js +0 -106
  134. package/lib/cjs/tests/testResponseFilter.js.map +0 -1
  135. package/lib/cjs/tests/testRouting.js +0 -77
  136. package/lib/cjs/tests/testRouting.js.map +0 -1
  137. package/lib/cjs/tests/testScopeRequest.js +0 -113
  138. package/lib/cjs/tests/testScopeRequest.js.map +0 -1
  139. package/lib/cjs/tests/testSession.js +0 -122
  140. package/lib/cjs/tests/testSession.js.map +0 -1
  141. package/lib/cjs/tests/testStatics.js +0 -58
  142. package/lib/cjs/tests/testStatics.js.map +0 -1
  143. package/lib/cjs/tests/testStream.js +0 -65
  144. package/lib/cjs/tests/testStream.js.map +0 -1
  145. package/lib/cjs/tests/testView.js +0 -83
  146. package/lib/cjs/tests/testView.js.map +0 -1
  147. package/lib/esm/package.json +0 -3
  148. package/lib/types-esm/components/PlatformTestSdk.d.ts +0 -9
  149. package/lib/types-esm/errors/CustomBadRequest.d.ts +0 -8
  150. package/lib/types-esm/errors/CustomInternalError.d.ts +0 -8
  151. package/lib/types-esm/index.d.ts +0 -40
  152. package/lib/types-esm/interfaces/PlatformTestingSdkOpts.d.ts +0 -8
  153. package/lib/types-esm/interfaces/index.d.ts +0 -4
  154. package/lib/types-esm/modules/feature/FeatureModule.d.ts +0 -2
  155. package/lib/types-esm/modules/feature/controllers/FeatureController.d.ts +0 -3
  156. package/lib/types-esm/tests/exports.d.ts +0 -2
  157. package/lib/types-esm/tests/testAcceptMime.d.ts +0 -2
  158. package/lib/types-esm/tests/testAuth.d.ts +0 -8
  159. package/lib/types-esm/tests/testBodyParams.d.ts +0 -3
  160. package/lib/types-esm/tests/testCache.d.ts +0 -2
  161. package/lib/types-esm/tests/testChildrenControllers.d.ts +0 -2
  162. package/lib/types-esm/tests/testCookies.d.ts +0 -11
  163. package/lib/types-esm/tests/testCustom404.d.ts +0 -2
  164. package/lib/types-esm/tests/testDeepQueryParams.d.ts +0 -3
  165. package/lib/types-esm/tests/testErrors.d.ts +0 -19
  166. package/lib/types-esm/tests/testHandlers.d.ts +0 -12
  167. package/lib/types-esm/tests/testHeaderParams.d.ts +0 -16
  168. package/lib/types-esm/tests/testHeaders.d.ts +0 -8
  169. package/lib/types-esm/tests/testInheritanceController.d.ts +0 -42
  170. package/lib/types-esm/tests/testLocals.d.ts +0 -2
  171. package/lib/types-esm/tests/testLocation.d.ts +0 -2
  172. package/lib/types-esm/tests/testMiddlewares.d.ts +0 -8
  173. package/lib/types-esm/tests/testModule.d.ts +0 -2
  174. package/lib/types-esm/tests/testMulter.d.ts +0 -21
  175. package/lib/types-esm/tests/testPathParams.d.ts +0 -2
  176. package/lib/types-esm/tests/testQueryParams.d.ts +0 -6
  177. package/lib/types-esm/tests/testRedirect.d.ts +0 -2
  178. package/lib/types-esm/tests/testResponse.d.ts +0 -16
  179. package/lib/types-esm/tests/testResponseFilter.d.ts +0 -2
  180. package/lib/types-esm/tests/testRouting.d.ts +0 -7
  181. package/lib/types-esm/tests/testScopeRequest.d.ts +0 -12
  182. package/lib/types-esm/tests/testSession.d.ts +0 -16
  183. package/lib/types-esm/tests/testStatics.d.ts +0 -2
  184. package/lib/types-esm/tests/testStream.d.ts +0 -2
  185. package/lib/types-esm/tests/testView.d.ts +0 -2
@@ -1 +0,0 @@
1
- {"version":3,"file":"testAcceptMime.js","sourceRoot":"","sources":["../../../src/tests/testAcceptMime.ts"],"names":[],"mappings":";;;;AAAA,yCAA2F;AAC3F,yCAAyC;AACzC,kEAAkC;AAIlC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAGtB,SAAS,CAAyB,MAAc;QAC9C,OAAO;YACL,MAAM;SACP,CAAC;IACJ,CAAC;IAKM,IAAI;QACT,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AAdC;IAAC,IAAA,aAAI,EAAC,aAAa,CAAC;IACnB,IAAA,mBAAU,EAAC,kBAAkB,CAAC;IACpB,mBAAA,IAAA,qBAAY,EAAC,QAAQ,CAAC,CAAA;;;;mDAIhC;AAED;IAAC,IAAA,YAAG,EAAC,aAAa,CAAC;IAClB,IAAA,oBAAW,EAAC,MAAM,CAAC;IACnB,IAAA,mBAAU,EAAC,MAAM,CAAC;;;;8CAGlB;AAdG,kBAAkB;IADvB,IAAA,mBAAU,EAAC,cAAc,CAAC;GACrB,kBAAkB,CAevB;AAED,SAAgB,cAAc,CAAC,OAA+B;IAC5D,IAAI,OAAwB,CAAC;IAE7B,SAAS,CACP,qBAAY,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;QACrC,GAAG,OAAO;QACV,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,kBAAkB,CAAC;SAC9B;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,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;QAC7D,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;YAC1G,MAAM,QAAQ,GAAG,MAAM,OAAO;iBAC3B,IAAI,CAAC,8BAA8B,CAAC;iBACpC,GAAG,CAAC;gBACH,MAAM,EAAE,kBAAkB;aAC3B,CAAC;iBACD,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBAC5B,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qGAAqG,EAAE,KAAK,IAAI,EAAE;YACnH,MAAM,QAAQ,GAAG,MAAM,OAAO;iBAC3B,IAAI,CAAC,8BAA8B,CAAC;iBACpC,GAAG,CAAC;gBACH,MAAM,EAAE,iBAAiB;aAC1B,CAAC;iBACD,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBAC5B,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,+CAA+C;gBACxD,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC5D,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;YAC9F,MAAM,QAAQ,GAAG,MAAM,OAAO;iBAC3B,GAAG,CAAC,8BAA8B,CAAC;iBACnC,GAAG,CAAC;gBACH,MAAM,EAAE,0BAA0B;aACnC,CAAC;iBACD,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;YACvG,MAAM,QAAQ,GAAG,MAAM,OAAO;iBAC3B,GAAG,CAAC,8BAA8B,CAAC;iBACnC,GAAG,CAAC;gBACH,MAAM,EAAE,iBAAiB;aAC1B,CAAC;iBACD,MAAM,CAAC,GAAG,CAAC,CAAC;YAEf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBAC5B,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,mCAAmC;gBAC5C,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAvED,wCAuEC"}
@@ -1,343 +0,0 @@
1
- "use strict";
2
- var OAuthMiddleware_1;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.testAuth = exports.OAuth = exports.TokenService = void 0;
5
- const tslib_1 = require("tslib");
6
- const common_1 = require("@tsed/common");
7
- const core_1 = require("@tsed/core");
8
- const exceptions_1 = require("@tsed/exceptions");
9
- const schema_1 = require("@tsed/schema");
10
- const supertest_1 = tslib_1.__importDefault(require("supertest"));
11
- const swagger_json_1 = tslib_1.__importDefault(require("../data/swagger.json"));
12
- let TokenService = class TokenService {
13
- constructor() {
14
- this._token = "EMPTY";
15
- }
16
- token(token) {
17
- if (token) {
18
- this._token = token;
19
- }
20
- return this._token;
21
- }
22
- isValid(token) {
23
- return String(token).match(/token/);
24
- }
25
- };
26
- TokenService = tslib_1.__decorate([
27
- (0, common_1.Injectable)()
28
- ], TokenService);
29
- exports.TokenService = TokenService;
30
- let OAuthMiddleware = OAuthMiddleware_1 = class OAuthMiddleware {
31
- use(ctx) {
32
- const { endpoint, request } = ctx;
33
- const options = endpoint.get(OAuthMiddleware_1) || {};
34
- if (!request.get("authorization")) {
35
- throw new exceptions_1.Unauthorized("Unauthorized");
36
- }
37
- if (!this.tokenService.isValid(request.get("authorization"))) {
38
- throw new exceptions_1.BadRequest("Bad token format");
39
- }
40
- if (options && options.role === "admin" && request.get("authorization") !== "admin_token") {
41
- throw new exceptions_1.Forbidden("Forbidden");
42
- }
43
- ctx.getRequest().user = {
44
- id: "id",
45
- name: "name"
46
- };
47
- }
48
- };
49
- tslib_1.__decorate([
50
- (0, common_1.Inject)(),
51
- tslib_1.__metadata("design:type", TokenService)
52
- ], OAuthMiddleware.prototype, "tokenService", void 0);
53
- tslib_1.__decorate([
54
- tslib_1.__param(0, (0, common_1.Context)()),
55
- tslib_1.__metadata("design:type", Function),
56
- tslib_1.__metadata("design:paramtypes", [Object]),
57
- tslib_1.__metadata("design:returntype", void 0)
58
- ], OAuthMiddleware.prototype, "use", null);
59
- OAuthMiddleware = OAuthMiddleware_1 = tslib_1.__decorate([
60
- (0, common_1.Middleware)()
61
- ], OAuthMiddleware);
62
- function OAuth(options = {}) {
63
- return (0, core_1.useDecorators)((0, common_1.UseAuth)(OAuthMiddleware, options), (0, schema_1.Security)("global_auth", ...(options.scopes || [])), (0, schema_1.In)("header").Type(String).Name("Authorization").Required(), (0, schema_1.Returns)(401).Description("Unauthorized"), (0, schema_1.Returns)(403).Description("Forbidden"));
64
- }
65
- exports.OAuth = OAuth;
66
- let TestAuthCtrl = class TestAuthCtrl {
67
- authorize() {
68
- this.tokenService.token("access_token");
69
- return {
70
- access_token: this.tokenService.token()
71
- };
72
- }
73
- token(user) {
74
- return user;
75
- }
76
- admin() {
77
- return {
78
- granted: true
79
- };
80
- }
81
- stepUp() {
82
- this.tokenService.token("admin_token");
83
- return {
84
- access_token: this.tokenService.token()
85
- };
86
- }
87
- };
88
- tslib_1.__decorate([
89
- (0, common_1.Inject)(),
90
- tslib_1.__metadata("design:type", TokenService)
91
- ], TestAuthCtrl.prototype, "tokenService", void 0);
92
- tslib_1.__decorate([
93
- (0, common_1.Post)("/authorize"),
94
- tslib_1.__metadata("design:type", Function),
95
- tslib_1.__metadata("design:paramtypes", []),
96
- tslib_1.__metadata("design:returntype", void 0)
97
- ], TestAuthCtrl.prototype, "authorize", null);
98
- tslib_1.__decorate([
99
- (0, common_1.Get)("/userinfo"),
100
- OAuth(),
101
- tslib_1.__param(0, (0, common_1.Req)("user")),
102
- tslib_1.__metadata("design:type", Function),
103
- tslib_1.__metadata("design:paramtypes", [Object]),
104
- tslib_1.__metadata("design:returntype", void 0)
105
- ], TestAuthCtrl.prototype, "token", null);
106
- tslib_1.__decorate([
107
- (0, common_1.Get)("/admin"),
108
- OAuth({ role: "admin", scopes: ["admin"] }),
109
- tslib_1.__metadata("design:type", Function),
110
- tslib_1.__metadata("design:paramtypes", []),
111
- tslib_1.__metadata("design:returntype", void 0)
112
- ], TestAuthCtrl.prototype, "admin", null);
113
- tslib_1.__decorate([
114
- (0, common_1.Post)("/stepUp"),
115
- tslib_1.__metadata("design:type", Function),
116
- tslib_1.__metadata("design:paramtypes", []),
117
- tslib_1.__metadata("design:returntype", void 0)
118
- ], TestAuthCtrl.prototype, "stepUp", null);
119
- TestAuthCtrl = tslib_1.__decorate([
120
- (0, common_1.Controller)("/auth")
121
- ], TestAuthCtrl);
122
- function testAuth(options) {
123
- let request;
124
- beforeAll(common_1.PlatformTest.bootstrap(options.server, {
125
- ...options,
126
- mount: {
127
- "/rest": [TestAuthCtrl]
128
- },
129
- swagger: [
130
- {
131
- path: "/doc",
132
- spec: swagger_json_1.default
133
- }
134
- ]
135
- }));
136
- beforeAll(() => {
137
- request = supertest_1.default.agent(common_1.PlatformTest.callback());
138
- });
139
- afterAll(common_1.PlatformTest.reset);
140
- describe("Scenario 1: Create token, test token and stepup token", () => {
141
- it("should create a token, call /userinfo to get userinfo and try admin route", async () => {
142
- await request.get("/rest/auth/userinfo").expect(401);
143
- await request
144
- .get("/rest/auth/userinfo")
145
- .set({
146
- Authorization: "wrong"
147
- })
148
- .expect(400);
149
- const { body } = await request.post("/rest/auth/authorize").expect(200);
150
- expect(body.access_token).toEqual("access_token");
151
- const { body: userInfo } = await request
152
- .get("/rest/auth/userinfo")
153
- .set({
154
- Authorization: body.access_token
155
- })
156
- .expect(200);
157
- expect(userInfo).toEqual({
158
- id: "id",
159
- name: "name"
160
- });
161
- await request
162
- .get("/rest/auth/admin")
163
- .set({
164
- Authorization: body.access_token
165
- })
166
- .expect(403);
167
- const { body: { access_token } } = await request.post("/rest/auth/stepUp").expect(200);
168
- expect(access_token).toEqual("admin_token");
169
- const { body: result } = await request
170
- .get("/rest/auth/admin")
171
- .set({
172
- Authorization: access_token
173
- })
174
- .expect(200);
175
- expect(result).toEqual({
176
- granted: true
177
- });
178
- });
179
- });
180
- describe("Scenario 2: GET /swagger.json", () => {
181
- it("should generate the swagger.spec", async () => {
182
- const { body: spec } = await request.get("/doc/swagger.json").expect(200);
183
- expect(spec).toEqual({
184
- openapi: "3.0.1",
185
- info: {
186
- version: "1.0.0",
187
- title: "Swagger Title",
188
- description: "Swagger description",
189
- termsOfService: "http://swagger.io/terms/",
190
- contact: { email: "apiteam@swagger.io" },
191
- license: { name: "Apache 2.0", url: "http://www.apache.org/licenses/LICENSE-2.0.html" }
192
- },
193
- paths: {
194
- "/rest/auth/authorize": {
195
- post: {
196
- operationId: "testAuthCtrlAuthorize",
197
- responses: { "200": { description: "Success" } },
198
- parameters: [],
199
- tags: ["TestAuthCtrl"]
200
- }
201
- },
202
- "/rest/auth/userinfo": {
203
- get: {
204
- operationId: "testAuthCtrlToken",
205
- responses: {
206
- "401": {
207
- content: { "application/json": { schema: { $ref: "#/components/schemas/Unauthorized" } } },
208
- description: "Unauthorized"
209
- },
210
- "403": {
211
- content: { "application/json": { schema: { $ref: "#/components/schemas/Forbidden" } } },
212
- description: "Forbidden"
213
- }
214
- },
215
- security: [{ global_auth: [] }],
216
- parameters: [
217
- {
218
- name: "Authorization",
219
- required: true,
220
- in: "header",
221
- schema: { type: "string" }
222
- }
223
- ],
224
- tags: ["TestAuthCtrl"]
225
- }
226
- },
227
- "/rest/auth/admin": {
228
- get: {
229
- operationId: "testAuthCtrlAdmin",
230
- responses: {
231
- "401": {
232
- content: { "application/json": { schema: { $ref: "#/components/schemas/Unauthorized" } } },
233
- description: "Unauthorized"
234
- },
235
- "403": {
236
- content: { "application/json": { schema: { $ref: "#/components/schemas/Forbidden" } } },
237
- description: "Forbidden"
238
- }
239
- },
240
- security: [{ global_auth: ["admin"] }],
241
- parameters: [
242
- {
243
- name: "Authorization",
244
- required: true,
245
- in: "header",
246
- schema: { type: "string" }
247
- }
248
- ],
249
- tags: ["TestAuthCtrl"]
250
- }
251
- },
252
- "/rest/auth/stepUp": {
253
- post: {
254
- operationId: "testAuthCtrlStepUp",
255
- responses: { "200": { description: "Success" } },
256
- parameters: [],
257
- tags: ["TestAuthCtrl"]
258
- }
259
- }
260
- },
261
- components: {
262
- securitySchemes: {
263
- global_auth: {
264
- type: "oauth2",
265
- flows: {
266
- implicit: {
267
- authorizationUrl: "http://petstore.swagger.io/oauth/dialog",
268
- scopes: { admin: "Admin access" }
269
- }
270
- }
271
- }
272
- },
273
- schemas: {
274
- Unauthorized: {
275
- type: "object",
276
- properties: {
277
- name: {
278
- type: "string",
279
- description: "The error name",
280
- minLength: 1,
281
- example: "UNAUTHORIZED",
282
- default: "UNAUTHORIZED"
283
- },
284
- message: { type: "string", description: "An error message", minLength: 1 },
285
- status: {
286
- type: "number",
287
- description: "The status code of the exception",
288
- example: 401,
289
- default: 401
290
- },
291
- errors: {
292
- type: "array",
293
- items: { $ref: "#/components/schemas/GenericError" },
294
- description: "A list of related errors"
295
- },
296
- stack: { type: "string", description: "The stack trace (only in development mode)" }
297
- },
298
- required: ["name", "message", "status"]
299
- },
300
- GenericError: {
301
- type: "object",
302
- properties: {
303
- name: { type: "string", description: "The error name", minLength: 1 },
304
- message: { type: "string", description: "An error message", minLength: 1 }
305
- },
306
- additionalProperties: true,
307
- required: ["name", "message"]
308
- },
309
- Forbidden: {
310
- type: "object",
311
- properties: {
312
- name: {
313
- type: "string",
314
- description: "The error name",
315
- minLength: 1,
316
- example: "FORBIDDEN",
317
- default: "FORBIDDEN"
318
- },
319
- message: { type: "string", description: "An error message", minLength: 1 },
320
- status: {
321
- type: "number",
322
- description: "The status code of the exception",
323
- example: 403,
324
- default: 403
325
- },
326
- errors: {
327
- type: "array",
328
- items: { $ref: "#/components/schemas/GenericError" },
329
- description: "A list of related errors"
330
- },
331
- stack: { type: "string", description: "The stack trace (only in development mode)" }
332
- },
333
- required: ["name", "message", "status"]
334
- }
335
- }
336
- },
337
- tags: [{ name: "TestAuthCtrl" }]
338
- });
339
- });
340
- });
341
- }
342
- exports.testAuth = testAuth;
343
- //# sourceMappingURL=testAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testAuth.js","sourceRoot":"","sources":["../../../src/tests/testAuth.ts"],"names":[],"mappings":"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"}