@tsed/platform-test-sdk 7.13.4 → 7.13.5

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.
@@ -4,7 +4,6 @@ exports.testSession = exports.SessionCtrl = exports.User = exports.UserCreation
4
4
  const tslib_1 = require("tslib");
5
5
  const common_1 = require("@tsed/common");
6
6
  const exceptions_1 = require("@tsed/exceptions");
7
- const mongoose_1 = require("@tsed/mongoose");
8
7
  const schema_1 = require("@tsed/schema");
9
8
  const supertest_1 = tslib_1.__importDefault(require("supertest"));
10
9
  const util_1 = require("util");
@@ -18,10 +17,8 @@ tslib_1.__decorate([
18
17
  tslib_1.__metadata("design:type", String)
19
18
  ], UserCreation.prototype, "name", void 0);
20
19
  tslib_1.__decorate([
21
- (0, mongoose_1.Indexed)(),
22
20
  (0, schema_1.Required)(),
23
21
  (0, schema_1.Email)(),
24
- (0, mongoose_1.Unique)(),
25
22
  (0, schema_1.Allow)(null),
26
23
  tslib_1.__metadata("design:type", String)
27
24
  ], UserCreation.prototype, "email", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"testSession.js","sourceRoot":"","sources":["../../../src/tests/testSession.ts"],"names":[],"mappings":"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","sourcesContent":["import {BodyParams, Constant, Controller, Get, PlatformTest, Post, Req, Session} from \"@tsed/common\";\nimport {NotFound} from \"@tsed/exceptions\";\nimport {Indexed, Unique} from \"@tsed/mongoose\";\nimport {Allow, Email, Ignore, MinLength, Property, Required, Returns} from \"@tsed/schema\";\nimport SuperTest from \"supertest\";\nimport {promisify} from \"util\";\nimport {PlatformTestingSdkOpts} from \"../interfaces\";\n\nexport class UserCreation {\n @Property()\n name: string;\n\n @Indexed()\n @Required()\n @Email()\n @Unique()\n @Allow(null)\n email: string;\n\n @Required()\n @MinLength(6)\n @Allow(null)\n password: string;\n}\n\nexport class User extends UserCreation {\n @Ignore()\n declare password: string;\n}\n\n@Controller(\"/session\")\nexport class SessionCtrl {\n @Constant(\"PLATFORM_NAME\")\n platformName: string;\n\n @Post(\"/connect\")\n async connect(@Session() session: any, @BodyParams() user: UserCreation) {\n session.user = user;\n\n return user;\n }\n\n @Get(\"/userinfo\")\n @Returns(200, User)\n async userInfo(@Session(\"user\") user: User): Promise<User> {\n if (!user) {\n throw new NotFound(\"User not found\");\n }\n\n return user;\n }\n\n @Get(\"/logout\")\n @Returns(204)\n async logout(@Req() req: any) {\n switch (this.platformName) {\n case \"koa\":\n return (req.ctx.session = null);\n case \"express\":\n delete req.session.user;\n\n return promisify(req.session.destroy.bind(req.session))();\n }\n }\n}\n\nexport function testSession(options: PlatformTestingSdkOpts) {\n let request: SuperTest.SuperTest<SuperTest.Test>;\n beforeAll(\n PlatformTest.bootstrap(options.server, {\n ...options,\n mount: {\n \"/rest\": [SessionCtrl]\n }\n })\n );\n beforeAll(() => {\n request = SuperTest.agent(PlatformTest.callback());\n });\n afterAll(PlatformTest.reset);\n\n describe(\"Scenario1: POST /rest/session/connected\", () => {\n it(\"should keep connected user in session and destroy session\", async () => {\n await request.get(\"/rest/session/userinfo\").expect(404);\n\n await request.post(\"/rest/session/connect\").send({\n name: \"name\",\n email: \"test@test.fr\",\n password: \"password1234\"\n });\n\n // @ts-ignore\n const response = await request.get(\"/rest/session/userinfo\").expect(200);\n\n expect(response.body).toEqual({\n email: \"test@test.fr\",\n name: \"name\"\n });\n\n await request.get(\"/rest/session/logout\").expect(204);\n await request.get(\"/rest/session/userinfo\").expect(404);\n });\n });\n}\n"]}
1
+ {"version":3,"file":"testSession.js","sourceRoot":"","sources":["../../../src/tests/testSession.ts"],"names":[],"mappings":"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","sourcesContent":["import {BodyParams, Constant, Controller, Get, PlatformTest, Post, Req, Session} from \"@tsed/common\";\nimport {NotFound} from \"@tsed/exceptions\";\nimport {Allow, Email, Ignore, MinLength, Property, Required, Returns} from \"@tsed/schema\";\nimport SuperTest from \"supertest\";\nimport {promisify} from \"util\";\nimport {PlatformTestingSdkOpts} from \"../interfaces\";\nexport class UserCreation {\n @Property()\n name: string;\n\n @Required()\n @Email()\n @Allow(null)\n email: string;\n\n @Required()\n @MinLength(6)\n @Allow(null)\n password: string;\n}\n\nexport class User extends UserCreation {\n @Ignore()\n declare password: string;\n}\n\n@Controller(\"/session\")\nexport class SessionCtrl {\n @Constant(\"PLATFORM_NAME\")\n platformName: string;\n\n @Post(\"/connect\")\n async connect(@Session() session: any, @BodyParams() user: UserCreation) {\n session.user = user;\n\n return user;\n }\n\n @Get(\"/userinfo\")\n @Returns(200, User)\n async userInfo(@Session(\"user\") user: User): Promise<User> {\n if (!user) {\n throw new NotFound(\"User not found\");\n }\n\n return user;\n }\n\n @Get(\"/logout\")\n @Returns(204)\n async logout(@Req() req: any) {\n switch (this.platformName) {\n case \"koa\":\n return (req.ctx.session = null);\n case \"express\":\n delete req.session.user;\n\n return promisify(req.session.destroy.bind(req.session))();\n }\n }\n}\n\nexport function testSession(options: PlatformTestingSdkOpts) {\n let request: SuperTest.SuperTest<SuperTest.Test>;\n beforeAll(\n PlatformTest.bootstrap(options.server, {\n ...options,\n mount: {\n \"/rest\": [SessionCtrl]\n }\n })\n );\n beforeAll(() => {\n request = SuperTest.agent(PlatformTest.callback());\n });\n afterAll(PlatformTest.reset);\n\n describe(\"Scenario1: POST /rest/session/connected\", () => {\n it(\"should keep connected user in session and destroy session\", async () => {\n await request.get(\"/rest/session/userinfo\").expect(404);\n\n await request.post(\"/rest/session/connect\").send({\n name: \"name\",\n email: \"test@test.fr\",\n password: \"password1234\"\n });\n\n // @ts-ignore\n const response = await request.get(\"/rest/session/userinfo\").expect(200);\n\n expect(response.body).toEqual({\n email: \"test@test.fr\",\n name: \"name\"\n });\n\n await request.get(\"/rest/session/logout\").expect(204);\n await request.get(\"/rest/session/userinfo\").expect(404);\n });\n });\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import { __decorate, __metadata, __param } from "tslib";
2
2
  import { BodyParams, Constant, Controller, Get, PlatformTest, Post, Req, Session } from "@tsed/common";
3
3
  import { NotFound } from "@tsed/exceptions";
4
- import { Indexed, Unique } from "@tsed/mongoose";
5
4
  import { Allow, Email, Ignore, MinLength, Property, Required, Returns } from "@tsed/schema";
6
5
  import SuperTest from "supertest";
7
6
  import { promisify } from "util";
@@ -15,10 +14,8 @@ __decorate([
15
14
  __metadata("design:type", String)
16
15
  ], UserCreation.prototype, "name", void 0);
17
16
  __decorate([
18
- Indexed(),
19
17
  Required(),
20
18
  Email(),
21
- Unique(),
22
19
  Allow(null),
23
20
  __metadata("design:type", String)
24
21
  ], UserCreation.prototype, "email", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"testSession.js","sourceRoot":"","sources":["../../../src/tests/testSession.ts"],"names":[],"mappings":"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","sourcesContent":["import {BodyParams, Constant, Controller, Get, PlatformTest, Post, Req, Session} from \"@tsed/common\";\nimport {NotFound} from \"@tsed/exceptions\";\nimport {Indexed, Unique} from \"@tsed/mongoose\";\nimport {Allow, Email, Ignore, MinLength, Property, Required, Returns} from \"@tsed/schema\";\nimport SuperTest from \"supertest\";\nimport {promisify} from \"util\";\nimport {PlatformTestingSdkOpts} from \"../interfaces\";\n\nexport class UserCreation {\n @Property()\n name: string;\n\n @Indexed()\n @Required()\n @Email()\n @Unique()\n @Allow(null)\n email: string;\n\n @Required()\n @MinLength(6)\n @Allow(null)\n password: string;\n}\n\nexport class User extends UserCreation {\n @Ignore()\n declare password: string;\n}\n\n@Controller(\"/session\")\nexport class SessionCtrl {\n @Constant(\"PLATFORM_NAME\")\n platformName: string;\n\n @Post(\"/connect\")\n async connect(@Session() session: any, @BodyParams() user: UserCreation) {\n session.user = user;\n\n return user;\n }\n\n @Get(\"/userinfo\")\n @Returns(200, User)\n async userInfo(@Session(\"user\") user: User): Promise<User> {\n if (!user) {\n throw new NotFound(\"User not found\");\n }\n\n return user;\n }\n\n @Get(\"/logout\")\n @Returns(204)\n async logout(@Req() req: any) {\n switch (this.platformName) {\n case \"koa\":\n return (req.ctx.session = null);\n case \"express\":\n delete req.session.user;\n\n return promisify(req.session.destroy.bind(req.session))();\n }\n }\n}\n\nexport function testSession(options: PlatformTestingSdkOpts) {\n let request: SuperTest.SuperTest<SuperTest.Test>;\n beforeAll(\n PlatformTest.bootstrap(options.server, {\n ...options,\n mount: {\n \"/rest\": [SessionCtrl]\n }\n })\n );\n beforeAll(() => {\n request = SuperTest.agent(PlatformTest.callback());\n });\n afterAll(PlatformTest.reset);\n\n describe(\"Scenario1: POST /rest/session/connected\", () => {\n it(\"should keep connected user in session and destroy session\", async () => {\n await request.get(\"/rest/session/userinfo\").expect(404);\n\n await request.post(\"/rest/session/connect\").send({\n name: \"name\",\n email: \"test@test.fr\",\n password: \"password1234\"\n });\n\n // @ts-ignore\n const response = await request.get(\"/rest/session/userinfo\").expect(200);\n\n expect(response.body).toEqual({\n email: \"test@test.fr\",\n name: \"name\"\n });\n\n await request.get(\"/rest/session/logout\").expect(204);\n await request.get(\"/rest/session/userinfo\").expect(404);\n });\n });\n}\n"]}
1
+ {"version":3,"file":"testSession.js","sourceRoot":"","sources":["../../../src/tests/testSession.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAC,MAAM,cAAc,CAAC;AACrG,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAC,MAAM,cAAc,CAAC;AAC1F,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAC;AAE/B,MAAM,OAAO,YAAY;IAEvB,IAAI,CAAS;IAKb,KAAK,CAAS;IAKd,QAAQ,CAAS;CAClB;AAXC;IADC,QAAQ,EAAE;;0CACE;AAKb;IAHC,QAAQ,EAAE;IACV,KAAK,EAAE;IACP,KAAK,CAAC,IAAI,CAAC;;2CACE;AAKd;IAHC,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC;;8CACK;AAGnB,MAAM,OAAO,IAAK,SAAQ,YAAY;CAGrC;AADC;IADC,MAAM,EAAE;;sCACgB;AAI3B,IAAa,WAAW,GAAxB,MAAa,WAAW;IAEtB,YAAY,CAAS;IAGrB,KAAK,CAAC,OAAO,CAAY,OAAY,EAAgB,IAAkB;QACrE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAID,KAAK,CAAC,QAAQ,CAAkB,IAAU;QACxC,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SACtC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAID,KAAK,CAAC,MAAM,CAAQ,GAAQ;QAC1B,QAAQ,IAAI,CAAC,YAAY,EAAE;YACzB,KAAK,KAAK;gBACR,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;YAClC,KAAK,SAAS;gBACZ,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;gBAExB,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;SAC7D;IACH,CAAC;CACF,CAAA;AA/BC;IADC,QAAQ,CAAC,eAAe,CAAC;;iDACL;AAGrB;IADC,IAAI,CAAC,UAAU,CAAC;IACF,WAAA,OAAO,EAAE,CAAA;IAAgB,WAAA,UAAU,EAAE,CAAA;;6CAAO,YAAY;;0CAItE;AAID;IAFC,GAAG,CAAC,WAAW,CAAC;IAChB,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;IACH,WAAA,OAAO,CAAC,MAAM,CAAC,CAAA;;qCAAO,IAAI;;2CAMzC;AAID;IAFC,GAAG,CAAC,SAAS,CAAC;IACd,OAAO,CAAC,GAAG,CAAC;IACC,WAAA,GAAG,EAAE,CAAA;;;;yCASlB;AAhCU,WAAW;IADvB,UAAU,CAAC,UAAU,CAAC;GACV,WAAW,CAiCvB;SAjCY,WAAW;AAmCxB,MAAM,UAAU,WAAW,CAAC,OAA+B;IACzD,IAAI,OAA4C,CAAC;IACjD,SAAS,CACP,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;QACrC,GAAG,OAAO;QACV,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,WAAW,CAAC;SACvB;KACF,CAAC,CACH,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAE7B,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACvD,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAExD,MAAM,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC;gBAC/C,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,cAAc;aACzB,CAAC,CAAC;YAEH,aAAa;YACb,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAEzE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;gBAC5B,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtD,MAAM,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {BodyParams, Constant, Controller, Get, PlatformTest, Post, Req, Session} from \"@tsed/common\";\nimport {NotFound} from \"@tsed/exceptions\";\nimport {Allow, Email, Ignore, MinLength, Property, Required, Returns} from \"@tsed/schema\";\nimport SuperTest from \"supertest\";\nimport {promisify} from \"util\";\nimport {PlatformTestingSdkOpts} from \"../interfaces\";\nexport class UserCreation {\n @Property()\n name: string;\n\n @Required()\n @Email()\n @Allow(null)\n email: string;\n\n @Required()\n @MinLength(6)\n @Allow(null)\n password: string;\n}\n\nexport class User extends UserCreation {\n @Ignore()\n declare password: string;\n}\n\n@Controller(\"/session\")\nexport class SessionCtrl {\n @Constant(\"PLATFORM_NAME\")\n platformName: string;\n\n @Post(\"/connect\")\n async connect(@Session() session: any, @BodyParams() user: UserCreation) {\n session.user = user;\n\n return user;\n }\n\n @Get(\"/userinfo\")\n @Returns(200, User)\n async userInfo(@Session(\"user\") user: User): Promise<User> {\n if (!user) {\n throw new NotFound(\"User not found\");\n }\n\n return user;\n }\n\n @Get(\"/logout\")\n @Returns(204)\n async logout(@Req() req: any) {\n switch (this.platformName) {\n case \"koa\":\n return (req.ctx.session = null);\n case \"express\":\n delete req.session.user;\n\n return promisify(req.session.destroy.bind(req.session))();\n }\n }\n}\n\nexport function testSession(options: PlatformTestingSdkOpts) {\n let request: SuperTest.SuperTest<SuperTest.Test>;\n beforeAll(\n PlatformTest.bootstrap(options.server, {\n ...options,\n mount: {\n \"/rest\": [SessionCtrl]\n }\n })\n );\n beforeAll(() => {\n request = SuperTest.agent(PlatformTest.callback());\n });\n afterAll(PlatformTest.reset);\n\n describe(\"Scenario1: POST /rest/session/connected\", () => {\n it(\"should keep connected user in session and destroy session\", async () => {\n await request.get(\"/rest/session/userinfo\").expect(404);\n\n await request.post(\"/rest/session/connect\").send({\n name: \"name\",\n email: \"test@test.fr\",\n password: \"password1234\"\n });\n\n // @ts-ignore\n const response = await request.get(\"/rest/session/userinfo\").expect(200);\n\n expect(response.body).toEqual({\n email: \"test@test.fr\",\n name: \"name\"\n });\n\n await request.get(\"/rest/session/logout\").expect(204);\n await request.get(\"/rest/session/userinfo\").expect(404);\n });\n });\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsed/platform-test-sdk",
3
- "version": "7.13.4",
3
+ "version": "7.13.5",
4
4
  "description": "Package to test platform adapter integration with Ts.ED",
5
5
  "private": false,
6
6
  "source": "./src/index.ts",
@@ -27,10 +27,20 @@
27
27
  "Adapter"
28
28
  ],
29
29
  "dependencies": {
30
- "@tsed/common": "7.13.4",
31
- "@tsed/core": "7.13.4",
32
- "@tsed/di": "7.13.4",
33
- "@tsed/swagger": "7.13.4"
30
+ "@tsed/ajv": "7.13.5",
31
+ "@tsed/common": "7.13.5",
32
+ "@tsed/core": "7.13.5",
33
+ "@tsed/di": "7.13.5",
34
+ "@tsed/json-mapper": "7.13.5",
35
+ "@tsed/logger": "6.2.2",
36
+ "@tsed/platform-cache": "7.13.5",
37
+ "@tsed/platform-params": "7.13.5",
38
+ "@tsed/platform-router": "7.13.5",
39
+ "@tsed/platform-views": "7.13.5",
40
+ "@tsed/schema": "7.13.5",
41
+ "@tsed/swagger": "7.13.5",
42
+ "ajv": "^8.12.0",
43
+ "axios": "^1.3.0"
34
44
  },
35
45
  "devDependencies": {},
36
46
  "peerDependencies": {},
@@ -1,19 +1,15 @@
1
1
  import {BodyParams, Constant, Controller, Get, PlatformTest, Post, Req, Session} from "@tsed/common";
2
2
  import {NotFound} from "@tsed/exceptions";
3
- import {Indexed, Unique} from "@tsed/mongoose";
4
3
  import {Allow, Email, Ignore, MinLength, Property, Required, Returns} from "@tsed/schema";
5
4
  import SuperTest from "supertest";
6
5
  import {promisify} from "util";
7
6
  import {PlatformTestingSdkOpts} from "../interfaces";
8
-
9
7
  export class UserCreation {
10
8
  @Property()
11
9
  name: string;
12
10
 
13
- @Indexed()
14
11
  @Required()
15
12
  @Email()
16
- @Unique()
17
13
  @Allow(null)
18
14
  email: string;
19
15