@lenne.tech/nest-server 8.0.2 → 8.3.0

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 (166) hide show
  1. package/dist/config.env.js +3 -2
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/args/pagination.args.js +1 -1
  4. package/dist/core/common/args/pagination.args.js.map +1 -1
  5. package/dist/core/common/decorators/restricted.decorator.d.ts +3 -0
  6. package/dist/core/common/decorators/restricted.decorator.js +14 -8
  7. package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
  8. package/dist/core/common/enums/role.enum.d.ts +3 -2
  9. package/dist/core/common/enums/role.enum.js +3 -2
  10. package/dist/core/common/enums/role.enum.js.map +1 -1
  11. package/dist/core/common/helpers/config.helper.d.ts +2 -1
  12. package/dist/core/common/helpers/config.helper.js +11 -7
  13. package/dist/core/common/helpers/config.helper.js.map +1 -1
  14. package/dist/core/common/helpers/context.helper.d.ts +7 -1
  15. package/dist/core/common/helpers/context.helper.js +33 -29
  16. package/dist/core/common/helpers/context.helper.js.map +1 -1
  17. package/dist/core/common/helpers/db.helper.d.ts +37 -0
  18. package/dist/core/common/helpers/db.helper.js +356 -0
  19. package/dist/core/common/helpers/db.helper.js.map +1 -0
  20. package/dist/core/common/helpers/file.helper.d.ts +8 -1
  21. package/dist/core/common/helpers/file.helper.js +43 -31
  22. package/dist/core/common/helpers/file.helper.js.map +1 -1
  23. package/dist/core/common/helpers/filter.helper.d.ts +3 -0
  24. package/dist/core/common/helpers/filter.helper.js +93 -81
  25. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  26. package/dist/core/common/helpers/graphql.helper.d.ts +24 -1
  27. package/dist/core/common/helpers/graphql.helper.js +144 -96
  28. package/dist/core/common/helpers/graphql.helper.js.map +1 -1
  29. package/dist/core/common/helpers/input.helper.d.ts +42 -4
  30. package/dist/core/common/helpers/input.helper.js +256 -97
  31. package/dist/core/common/helpers/input.helper.js.map +1 -1
  32. package/dist/core/common/helpers/model.helper.d.ts +11 -0
  33. package/dist/core/common/helpers/model.helper.js +41 -29
  34. package/dist/core/common/helpers/model.helper.js.map +1 -1
  35. package/dist/core/common/helpers/service.helper.d.ts +21 -1
  36. package/dist/core/common/helpers/service.helper.js +80 -72
  37. package/dist/core/common/helpers/service.helper.js.map +1 -1
  38. package/dist/core/common/inputs/combined-filter.input.js +1 -1
  39. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  40. package/dist/core/common/inputs/core-input.input.js +1 -1
  41. package/dist/core/common/inputs/core-input.input.js.map +1 -1
  42. package/dist/core/common/interceptors/check-response.interceptor.js +1 -1
  43. package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
  44. package/dist/core/common/interfaces/resolve-selector.interface.d.ts +5 -0
  45. package/dist/core/common/interfaces/resolve-selector.interface.js +3 -0
  46. package/dist/core/common/interfaces/resolve-selector.interface.js.map +1 -0
  47. package/dist/core/common/interfaces/service-options.interface.d.ts +36 -0
  48. package/dist/core/common/interfaces/service-options.interface.js +3 -0
  49. package/dist/core/common/interfaces/service-options.interface.js.map +1 -0
  50. package/dist/core/common/models/core-model.model.d.ts +5 -1
  51. package/dist/core/common/models/core-model.model.js +1 -1
  52. package/dist/core/common/models/core-model.model.js.map +1 -1
  53. package/dist/core/common/pipes/check-input.pipe.js +2 -2
  54. package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
  55. package/dist/core/common/pipes/map-and-validate.pipe.js +1 -1
  56. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  57. package/dist/core/common/services/crud.service.d.ts +13 -0
  58. package/dist/core/common/services/crud.service.js +57 -0
  59. package/dist/core/common/services/crud.service.js.map +1 -0
  60. package/dist/core/common/services/email.service.js +8 -8
  61. package/dist/core/common/services/email.service.js.map +1 -1
  62. package/dist/core/common/services/module.service.d.ts +40 -0
  63. package/dist/core/common/services/module.service.js +80 -0
  64. package/dist/core/common/services/module.service.js.map +1 -0
  65. package/dist/core/common/types/core-model-constructor.type.d.ts +21 -0
  66. package/dist/core/common/types/core-model-constructor.type.js +3 -0
  67. package/dist/core/common/types/core-model-constructor.type.js.map +1 -0
  68. package/dist/core/common/types/field-selection.type.d.ts +4 -0
  69. package/dist/core/common/types/field-selection.type.js +3 -0
  70. package/dist/core/common/types/field-selection.type.js.map +1 -0
  71. package/dist/core/common/types/ids.type.d.ts +8 -0
  72. package/dist/core/common/types/ids.type.js +3 -0
  73. package/dist/core/common/types/ids.type.js.map +1 -0
  74. package/dist/core/common/types/string-or-object-id.type.d.ts +2 -0
  75. package/dist/core/common/types/string-or-object-id.type.js +3 -0
  76. package/dist/core/common/types/string-or-object-id.type.js.map +1 -0
  77. package/dist/core/modules/auth/core-auth.resolver.d.ts +2 -1
  78. package/dist/core/modules/auth/core-auth.resolver.js +4 -3
  79. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  80. package/dist/core/modules/auth/guards/roles.guard.js +1 -2
  81. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  82. package/dist/core/modules/auth/services/core-auth-user.service.d.ts +3 -1
  83. package/dist/core/modules/auth/services/core-auth-user.service.js.map +1 -1
  84. package/dist/core/modules/auth/services/core-auth.service.d.ts +2 -1
  85. package/dist/core/modules/auth/services/core-auth.service.js +6 -4
  86. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  87. package/dist/core/modules/user/core-user.model.js +1 -1
  88. package/dist/core/modules/user/core-user.model.js.map +1 -1
  89. package/dist/core/modules/user/core-user.service.d.ts +16 -25
  90. package/dist/core/modules/user/core-user.service.js +69 -90
  91. package/dist/core/modules/user/core-user.service.js.map +1 -1
  92. package/dist/core.module.js +1 -1
  93. package/dist/core.module.js.map +1 -1
  94. package/dist/index.d.ts +9 -1
  95. package/dist/index.js +9 -1
  96. package/dist/index.js.map +1 -1
  97. package/dist/server/modules/auth/auth.resolver.d.ts +2 -1
  98. package/dist/server/modules/auth/auth.resolver.js +4 -3
  99. package/dist/server/modules/auth/auth.resolver.js.map +1 -1
  100. package/dist/server/modules/file/file.controller.js +1 -1
  101. package/dist/server/modules/file/file.controller.js.map +1 -1
  102. package/dist/server/modules/user/avatar.controller.js +2 -2
  103. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  104. package/dist/server/modules/user/user.model.d.ts +2 -1
  105. package/dist/server/modules/user/user.module.js +7 -3
  106. package/dist/server/modules/user/user.module.js.map +1 -1
  107. package/dist/server/modules/user/user.resolver.d.ts +8 -7
  108. package/dist/server/modules/user/user.resolver.js +85 -49
  109. package/dist/server/modules/user/user.resolver.js.map +1 -1
  110. package/dist/server/modules/user/user.service.d.ts +9 -18
  111. package/dist/server/modules/user/user.service.js +23 -30
  112. package/dist/server/modules/user/user.service.js.map +1 -1
  113. package/dist/test/test.helper.d.ts +1 -2
  114. package/dist/test/test.helper.js +1 -16
  115. package/dist/test/test.helper.js.map +1 -1
  116. package/dist/tsconfig.build.tsbuildinfo +1 -1
  117. package/package.json +58 -59
  118. package/src/config.env.ts +3 -2
  119. package/src/core/common/args/pagination.args.ts +2 -2
  120. package/src/core/common/decorators/restricted.decorator.ts +24 -12
  121. package/src/core/common/enums/role.enum.ts +23 -5
  122. package/src/core/common/helpers/config.helper.ts +26 -6
  123. package/src/core/common/helpers/context.helper.ts +42 -33
  124. package/src/core/common/helpers/db.helper.ts +595 -0
  125. package/src/core/common/helpers/file.helper.ts +76 -49
  126. package/src/core/common/helpers/filter.helper.ts +119 -96
  127. package/src/core/common/helpers/graphql.helper.ts +219 -117
  128. package/src/core/common/helpers/input.helper.ts +349 -108
  129. package/src/core/common/helpers/model.helper.ts +102 -57
  130. package/src/core/common/helpers/service.helper.ts +149 -117
  131. package/src/core/common/inputs/combined-filter.input.ts +2 -2
  132. package/src/core/common/inputs/core-input.input.ts +2 -2
  133. package/src/core/common/interceptors/check-response.interceptor.ts +2 -2
  134. package/src/core/common/interfaces/resolve-selector.interface.ts +9 -0
  135. package/src/core/common/interfaces/service-options.interface.ts +71 -0
  136. package/src/core/common/models/core-model.model.ts +7 -3
  137. package/src/core/common/pipes/check-input.pipe.ts +4 -4
  138. package/src/core/common/pipes/map-and-validate.pipe.ts +2 -2
  139. package/src/core/common/services/crud.service.ts +100 -0
  140. package/src/core/common/services/email.service.ts +9 -9
  141. package/src/core/common/services/module.service.ts +188 -0
  142. package/src/core/common/types/core-model-constructor.type.ts +30 -0
  143. package/src/core/common/types/field-selection.type.ts +8 -0
  144. package/src/core/common/types/ids.type.ts +7 -0
  145. package/src/core/common/types/string-or-object-id.type.ts +3 -0
  146. package/src/core/modules/auth/core-auth.module.ts +1 -1
  147. package/src/core/modules/auth/core-auth.resolver.ts +8 -3
  148. package/src/core/modules/auth/guards/roles.guard.ts +5 -7
  149. package/src/core/modules/auth/services/core-auth-user.service.ts +7 -1
  150. package/src/core/modules/auth/services/core-auth.service.ts +14 -4
  151. package/src/core/modules/user/core-user.model.ts +2 -1
  152. package/src/core/modules/user/core-user.service.ts +115 -185
  153. package/src/core.module.ts +2 -2
  154. package/src/index.ts +9 -1
  155. package/src/main.ts +1 -1
  156. package/src/server/modules/auth/auth.resolver.ts +8 -3
  157. package/src/server/modules/file/file.controller.ts +2 -2
  158. package/src/server/modules/user/avatar.controller.ts +3 -3
  159. package/src/server/modules/user/user.module.ts +7 -3
  160. package/src/server/modules/user/user.resolver.ts +74 -43
  161. package/src/server/modules/user/user.service.ts +30 -53
  162. package/src/test/test.helper.ts +31 -30
  163. package/dist/core/modules/user/core-basic-user.service.d.ts +0 -17
  164. package/dist/core/modules/user/core-basic-user.service.js +0 -73
  165. package/dist/core/modules/user/core-basic-user.service.js.map +0 -1
  166. package/src/core/modules/user/core-basic-user.service.ts +0 -138
@@ -14,42 +14,41 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.UserService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const mongoose_1 = require("@nestjs/mongoose");
17
18
  const fs = require("fs");
19
+ const graphql_subscriptions_1 = require("graphql-subscriptions");
20
+ const mongoose_2 = require("mongoose");
18
21
  const config_env_1 = require("../../../config.env");
19
- const filter_helper_1 = require("../../../core/common/helpers/filter.helper");
20
- const service_helper_1 = require("../../../core/common/helpers/service.helper");
21
22
  const config_service_1 = require("../../../core/common/services/config.service");
22
23
  const email_service_1 = require("../../../core/common/services/email.service");
23
24
  const core_user_service_1 = require("../../../core/modules/user/core-user.service");
24
25
  const user_model_1 = require("./user.model");
25
- const mongoose_1 = require("@nestjs/mongoose");
26
- const mongoose_2 = require("mongoose");
27
- const graphql_subscriptions_1 = require("graphql-subscriptions");
28
26
  let UserService = class UserService extends core_user_service_1.CoreUserService {
29
- constructor(configService, emailService, userModel, pubSub) {
30
- super(userModel, emailService);
27
+ constructor(configService, emailService, mainModelConstructor, mainDbModel, pubSub) {
28
+ super(emailService, mainDbModel, mainModelConstructor);
31
29
  this.configService = configService;
32
30
  this.emailService = emailService;
33
- this.userModel = userModel;
31
+ this.mainModelConstructor = mainModelConstructor;
32
+ this.mainDbModel = mainDbModel;
34
33
  this.pubSub = pubSub;
35
- this.model = user_model_1.User;
36
34
  }
37
- async create(input, currentUser) {
38
- const user = await super.create(input, currentUser);
39
- await this.prepareOutput(user);
40
- await this.pubSub.publish('userCreated', user_model_1.User.map(user));
35
+ async create(input, serviceOptions) {
36
+ let user = await super.create(input, serviceOptions);
37
+ if (!user.createdBy) {
38
+ await this.mainDbModel.findByIdAndUpdate(user.id, { createdBy: user.id });
39
+ user = await this.get(user.id, serviceOptions);
40
+ }
41
+ if ((serviceOptions === null || serviceOptions === void 0 ? void 0 : serviceOptions.pubSub) === undefined || serviceOptions.pubSub) {
42
+ await this.pubSub.publish('userCreated', user_model_1.User.map(user));
43
+ }
41
44
  await this.emailService.sendMail(user.email, 'Welcome', {
42
45
  htmlTemplate: 'welcome',
43
46
  templateData: { name: user.username, link: config_env_1.default.email.verificationLink + '/' + user.verificationToken },
44
47
  });
45
48
  return user;
46
49
  }
47
- find(filterArgs, ...args) {
48
- const filterQuery = filter_helper_1.Filter.convertFilterArgsToQuery(filterArgs);
49
- return this.userModel.find(filterQuery[0], null, filterQuery[1]).exec();
50
- }
51
- async sendPasswordResetMail(email) {
52
- const user = await super.setPasswordResetTokenForEmail(email);
50
+ async sendPasswordResetMail(email, serviceOptions) {
51
+ const user = await super.setPasswordResetTokenForEmail(email, serviceOptions);
53
52
  await this.emailService.sendMail(user.email, 'Password reset', {
54
53
  htmlTemplate: 'password-reset',
55
54
  templateData: { name: user.username, link: config_env_1.default.email.passwordResetLink + '/' + user.passwordResetToken },
@@ -57,7 +56,7 @@ let UserService = class UserService extends core_user_service_1.CoreUserService
57
56
  return user;
58
57
  }
59
58
  async setAvatar(file, user) {
60
- const dbUser = await this.userModel.findOne({ id: user.id }).exec();
59
+ const dbUser = await this.mainDbModel.findOne({ id: user.id }).exec();
61
60
  if (!dbUser) {
62
61
  throw new common_1.UnauthorizedException();
63
62
  }
@@ -75,20 +74,14 @@ let UserService = class UserService extends core_user_service_1.CoreUserService
75
74
  await dbUser.save();
76
75
  return file.filename;
77
76
  }
78
- async prepareInput(input, currentUser, options = {}) {
79
- return service_helper_1.ServiceHelper.prepareInput(input, currentUser, options);
80
- }
81
- async prepareOutput(user) {
82
- return service_helper_1.ServiceHelper.prepareOutput(user);
83
- }
84
77
  };
85
78
  UserService = __decorate([
86
79
  (0, common_1.Injectable)(),
87
- __param(2, (0, mongoose_1.InjectModel)('User')),
88
- __param(3, (0, common_1.Inject)('PUB_SUB')),
80
+ __param(2, (0, common_1.Inject)('USER_CLASS')),
81
+ __param(3, (0, mongoose_1.InjectModel)('User')),
82
+ __param(4, (0, common_1.Inject)('PUB_SUB')),
89
83
  __metadata("design:paramtypes", [config_service_1.ConfigService,
90
- email_service_1.EmailService,
91
- mongoose_2.Model,
84
+ email_service_1.EmailService, Object, mongoose_2.Model,
92
85
  graphql_subscriptions_1.PubSub])
93
86
  ], UserService);
94
87
  exports.UserService = UserService;
@@ -1 +1 @@
1
- {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../../../src/server/modules/user/user.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../../../src/server/modules/user/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAyG;AACzG,+CAA+C;AAC/C,yBAAyB;AACzB,iEAA+C;AAC/C,uCAAiC;AACjC,oDAA4C;AAE5C,iFAA6E;AAC7E,+EAA2E;AAE3E,oFAA+E;AAG/E,6CAAkD;AAMlD,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,mCAAiD;IAQhF,YACqB,aAA4B,EAC5B,YAA0B,EACJ,oBAAgD,EACjD,WAAgC,EAClC,MAAc;QAEpD,KAAK,CAAC,YAAY,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;QANpC,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAc;QACJ,yBAAoB,GAApB,oBAAoB,CAA4B;QACjD,gBAAW,GAAX,WAAW,CAAqB;QAClC,WAAM,GAAN,MAAM,CAAQ;IAGtD,CAAC;IASD,KAAK,CAAC,MAAM,CAAC,KAAsB,EAAE,cAA+B;QAElE,IAAI,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAIrD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1E,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;SAChD;QAGD,IAAI,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,MAAK,SAAS,IAAI,cAAc,CAAC,MAAM,EAAE;YACjE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,iBAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1D;QAGD,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE;YACtD,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,oBAAS,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE;SAC7G,CAAC,CAAC;QAGH,OAAO,IAAI,CAAC;IACd,CAAC;IAOD,KAAK,CAAC,qBAAqB,CAAC,KAAa,EAAE,cAA+B;QAExE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,6BAA6B,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAG9E,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE;YAC7D,YAAY,EAAE,gBAAgB;YAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,oBAAS,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE;SAC/G,CAAC,CAAC;QAGH,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK,CAAC,SAAS,CAAC,IAAyB,EAAE,IAAU;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEtE,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QAGD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,qCAA4B,CAAC,qBAAqB,CAAC,CAAC;SAC/D;QAGD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,EAAE,CAAC,MAAM,CAAC,oBAAS,CAAC,YAAY,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzE,IAAI,GAAG,EAAE;oBACP,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAClB;YACH,CAAC,CAAC,CAAC;SACJ;QAGD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE9B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAGpB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF,CAAA;AAtGY,WAAW;IADvB,IAAA,mBAAU,GAAE;IAYR,WAAA,IAAA,eAAM,EAAC,YAAY,CAAC,CAAA;IACpB,WAAA,IAAA,sBAAW,EAAC,MAAM,CAAC,CAAA;IACnB,WAAA,IAAA,eAAM,EAAC,SAAS,CAAC,CAAA;qCAJgB,8BAAa;QACd,4BAAY,UAEQ,gBAAK;QACZ,8BAAM;GAb3C,WAAW,CAsGvB;AAtGY,kCAAW"}
@@ -1,5 +1,4 @@
1
1
  import { INestApplication } from '@nestjs/common';
2
- import { FastifyInstance } from 'fastify';
3
2
  import * as LightMyRequest from 'light-my-request';
4
3
  export declare enum TestGraphQLType {
5
4
  QUERY = "query",
@@ -34,7 +33,7 @@ export interface TestRestOptions {
34
33
  method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
35
34
  }
36
35
  export declare class TestHelper {
37
- app: FastifyInstance | INestApplication;
36
+ app: INestApplication;
38
37
  constructor(app: any);
39
38
  graphQl(graphql: string | TestGraphQLConfig, options?: TestGraphQLOptions): Promise<any>;
40
39
  rest(url: string, options?: TestRestOptions): Promise<any>;
@@ -66,12 +66,6 @@ class TestHelper {
66
66
  requestConfig.headers = { authorization: `Bearer ${token}` };
67
67
  }
68
68
  const response = await this.getResponse(token, requestConfig, statusCode, log, logError);
69
- if (this.app.inject) {
70
- expect(response.headers['content-type']).toBe('application/json');
71
- return JSON.parse(response.payload).data
72
- ? JSON.parse(response.payload).data[graphql.name]
73
- : JSON.parse(response.payload);
74
- }
75
69
  expect(response.headers['content-type']).toMatch('application/json');
76
70
  return response.body.data ? response.body.data[graphql.name] : response.body;
77
71
  }
@@ -135,21 +129,12 @@ class TestHelper {
135
129
  if (token) {
136
130
  requestConfig.headers = { authorization: `Bearer ${token}` };
137
131
  }
138
- let response;
139
- if (this.app.inject) {
140
- response = await this.app.inject(requestConfig);
141
- if (log) {
142
- console.log(response);
143
- }
144
- expect(response.statusCode).toBe(statusCode);
145
- return response;
146
- }
147
132
  const method = requestConfig.method.toLowerCase();
148
133
  let request = supertest(this.app.getHttpServer())[method](requestConfig.url);
149
134
  if (token) {
150
135
  request = request.set('Authorization', 'bearer ' + token);
151
136
  }
152
- response = await request.send(requestConfig.payload);
137
+ const response = await request.send(requestConfig.payload);
153
138
  if (log) {
154
139
  console.log(response);
155
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"test.helper.js","sourceRoot":"","sources":["../../src/test/test.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.helper.js","sourceRoot":"","sources":["../../src/test/test.helper.ts"],"names":[],"mappings":"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"}