mongodb-dynamic-api 2.3.16 → 2.3.17

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  Changelog
2
2
 
3
+ ## [2.3.17](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.3.16...v2.3.17) (2024-05-26)
4
+
5
+
6
+ ### authentication
7
+
8
+ * **authentication:** rework reset and change password behaviors when options are provided ([3a0f09d](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/3a0f09dd23f0083c79632bed9a83e93eb90c62d2))
9
+
3
10
  ## [2.3.16](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.3.15...v2.3.16) (2024-05-25)
4
11
 
5
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodb-dynamic-api",
3
- "version": "2.3.16",
3
+ "version": "2.3.17",
4
4
  "description": "Auto generated CRUD API for MongoDB using NestJS",
5
5
  "readmeFilename": "README.md",
6
6
  "main": "index.js",
@@ -38,8 +38,8 @@ type DynamicApiCallbackMethods = {
38
38
  };
39
39
  type DynamicApiServiceCallback<Entity extends BaseEntity> = (entity: Entity, methods: DynamicApiCallbackMethods) => Promise<void>;
40
40
  type DynamicApiResetPasswordCallbackMethods<Entity extends BaseEntity, UpdateBy = 'userId'> = {
41
- findUserByEmail: (email: string) => Promise<Entity | undefined>;
42
- updateUserByEmail: (email: string, update: Partial<Entity>) => Promise<Entity | undefined>;
41
+ findUserByEmail: () => Promise<Entity>;
42
+ updateUserByEmail: (update: UpdateQuery<Entity> | UpdateWithAggregationPipeline) => Promise<Entity>;
43
43
  };
44
44
  type DynamicApiResetPasswordCallback<Entity extends BaseEntity> = (_: {
45
45
  resetPasswordToken: string;
@@ -20,9 +20,9 @@ const strategies_1 = require("./strategies");
20
20
  let AuthModule = AuthModule_1 = class AuthModule {
21
21
  static forRoot(options, extraImports = []) {
22
22
  const { userEntity, login: { loginField, passwordField, ...login }, register, resetPassword, jwt: { secret, expiresIn }, validationPipeOptions, } = this.initializeAuthOptions(options);
23
- const { resetPasswordCallback, changePasswordCallback, emailField, expirationInMinutes, abilityPredicate, } = resetPassword;
23
+ const { resetPasswordCallback, changePasswordCallback, emailField, expirationInMinutes, changePasswordAbilityPredicate, } = resetPassword;
24
24
  const resetPasswordOptions = resetPasswordCallback
25
- ? { resetPasswordCallback, changePasswordCallback, emailField, expirationInMinutes, abilityPredicate }
25
+ ? { resetPasswordCallback, changePasswordCallback, emailField, expirationInMinutes, changePasswordAbilityPredicate: changePasswordAbilityPredicate }
26
26
  : undefined;
27
27
  const AuthController = (0, auth_helper_1.createAuthController)(userEntity, { loginField, passwordField, ...login }, register, validationPipeOptions, resetPasswordOptions);
28
28
  const AuthServiceProvider = (0, auth_helper_1.createAuthServiceProvider)(userEntity, { loginField, passwordField, ...login }, register.callback, resetPasswordOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ type DynamicApiResetPasswordOptions<Entity extends BaseEntity = any> = {
26
26
  expirationInMinutes: number;
27
27
  resetPasswordCallback: DynamicApiResetPasswordCallback<Entity>;
28
28
  changePasswordCallback: DynamicApiServiceCallback<Entity>;
29
- abilityPredicate?: AuthAbilityPredicate;
29
+ changePasswordAbilityPredicate?: AuthAbilityPredicate;
30
30
  };
31
31
  type DynamicApiAuthOptions<Entity extends BaseEntity = any> = {
32
32
  userEntity: Type<Entity>;
@@ -78,7 +78,7 @@ class BaseAuthService extends services_1.BaseService {
78
78
  return;
79
79
  }
80
80
  this.resetPasswordCallbackMethods = {
81
- findUserByEmail: async (email) => {
81
+ findUserByEmail: async () => {
82
82
  const user = await this.model.findOne({ [this.resetPasswordOptions.emailField]: email })
83
83
  .lean()
84
84
  .exec();
@@ -87,8 +87,8 @@ class BaseAuthService extends services_1.BaseService {
87
87
  }
88
88
  return this.buildInstance(user);
89
89
  },
90
- updateUserByEmail: async (email, data) => {
91
- const user = await this.model.findOneAndUpdate({ [this.resetPasswordOptions.emailField]: email }, data, { new: true }).lean().exec();
90
+ updateUserByEmail: async (update) => {
91
+ const user = await this.model.findOneAndUpdate({ [this.resetPasswordOptions.emailField]: email }, update, { new: true }).lean().exec();
92
92
  if (!user) {
93
93
  return;
94
94
  }
@@ -119,10 +119,13 @@ class BaseAuthService extends services_1.BaseService {
119
119
  }
120
120
  let userId;
121
121
  try {
122
- const { _id } = await this.findOneDocumentWithAbilityPredicate(undefined, { [this.resetPasswordOptions.emailField]: email });
122
+ const { _id } = await this.findOneDocumentWithAbilityPredicate(undefined, { [this.resetPasswordOptions.emailField]: email }, this.resetPasswordOptions?.changePasswordAbilityPredicate);
123
123
  userId = _id.toString();
124
124
  }
125
125
  catch (error) {
126
+ if (error.status === 403) {
127
+ throw new common_1.ForbiddenException('You are not allowed to change your password.');
128
+ }
126
129
  this.logger.warn('Invalid email, user not found');
127
130
  }
128
131
  if (!userId) {
@@ -131,8 +134,9 @@ class BaseAuthService extends services_1.BaseService {
131
134
  const hashedPassword = await this.bcryptService.hashPassword(newPassword);
132
135
  await this.model.updateOne({ _id: userId }, { [this.passwordField]: hashedPassword });
133
136
  if (this.resetPasswordOptions?.changePasswordCallback) {
134
- const user = await this.findOneDocumentWithAbilityPredicate(userId);
135
- await this.resetPasswordOptions.changePasswordCallback(this.buildInstance(user), this.callbackMethods);
137
+ const user = (await this.model.findOne({ _id: userId }).lean().exec());
138
+ const instance = this.buildInstance(user);
139
+ await this.resetPasswordOptions.changePasswordCallback(instance, this.callbackMethods);
136
140
  }
137
141
  }
138
142
  buildUserFields(user, fieldsToBuild) {
@@ -1 +1 @@
1
- {"version":3,"file":"base-auth.service.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/services/base-auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-auth.service.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/services/base-auth.service.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@
24
24
  /// <reference types="mongoose/types/inferschematype" />
25
25
  import { Type } from '@nestjs/common';
26
26
  import { FilterQuery, Model, Schema, UpdateQuery, UpdateWithAggregationPipeline } from 'mongoose';
27
- import { AbilityPredicate, DeleteResult, DynamicApiCallbackMethods, UpdateResult } from '../../interfaces';
27
+ import { AbilityPredicate, AuthAbilityPredicate, DeleteResult, DynamicApiCallbackMethods, UpdateResult } from '../../interfaces';
28
28
  import { BaseEntity } from '../../models';
29
29
  import { DynamicApiResetPasswordOptions } from '../../modules';
30
30
  export declare abstract class BaseService<Entity extends BaseEntity> {
@@ -38,7 +38,7 @@ export declare abstract class BaseService<Entity extends BaseEntity> {
38
38
  protected constructor(model: Model<Entity>);
39
39
  get isSoftDeletable(): boolean;
40
40
  protected findManyDocumentsWithAbilityPredicate(conditions?: FilterQuery<Entity>): Promise<Entity[]>;
41
- protected findOneDocumentWithAbilityPredicate(_id: string | Schema.Types.ObjectId | undefined, conditions?: FilterQuery<Entity>): Promise<Entity>;
41
+ protected findOneDocumentWithAbilityPredicate(_id: string | Schema.Types.ObjectId | undefined, conditions?: FilterQuery<Entity>, authAbilityPredicate?: AuthAbilityPredicate<Entity>): Promise<Entity>;
42
42
  protected findManyDocuments<T>(entity: Type<T>, query: FilterQuery<T>): Promise<T[]>;
43
43
  protected findOneDocument<T>(entity: Type<T>, query: FilterQuery<T>): Promise<T | undefined>;
44
44
  protected createManyDocuments<T>(entity: Type<T>, data: Partial<T>[]): Promise<T[]>;
@@ -48,7 +48,7 @@ export declare abstract class BaseService<Entity extends BaseEntity> {
48
48
  protected deleteManyDocuments<T>(entity: Type<T>, ids: string[]): Promise<DeleteResult>;
49
49
  protected deleteOneDocument<T>(entity: Type<T>, id: string): Promise<DeleteResult>;
50
50
  protected buildInstance(document: Entity): Entity;
51
- protected handleAbilityPredicate(document: Entity): void;
51
+ protected handleAbilityPredicate(document: Entity, authAbilityPredicate?: AuthAbilityPredicate<Entity>): void;
52
52
  protected handleDuplicateKeyError(error: any, reThrow?: boolean): void;
53
53
  protected handleMongoErrors(error: any, reThrow?: boolean): void;
54
54
  protected handleDocumentNotFound(): void;
@@ -29,7 +29,7 @@ class BaseService {
29
29
  }
30
30
  return documents;
31
31
  }
32
- async findOneDocumentWithAbilityPredicate(_id, conditions = {}) {
32
+ async findOneDocumentWithAbilityPredicate(_id, conditions = {}, authAbilityPredicate) {
33
33
  const document = await this.findOneDocument(this.entity, {
34
34
  ...(_id ? { _id } : {}),
35
35
  ...conditions,
@@ -37,8 +37,8 @@ class BaseService {
37
37
  if (!document) {
38
38
  throw new common_1.BadRequestException('Document not found');
39
39
  }
40
- if (this.abilityPredicate) {
41
- this.handleAbilityPredicate(document);
40
+ if (authAbilityPredicate || this.abilityPredicate) {
41
+ this.handleAbilityPredicate(document, authAbilityPredicate);
42
42
  }
43
43
  return document;
44
44
  }
@@ -92,8 +92,10 @@ class BaseService {
92
92
  .id(_id?.toString() ?? id)
93
93
  .build();
94
94
  }
95
- handleAbilityPredicate(document) {
96
- const isAllowed = this.abilityPredicate(document, this.user);
95
+ handleAbilityPredicate(document, authAbilityPredicate) {
96
+ const isAllowed = authAbilityPredicate
97
+ ? authAbilityPredicate(this.buildInstance(document))
98
+ : this.abilityPredicate(document, this.user);
97
99
  if (!isAllowed) {
98
100
  throw new common_1.ForbiddenException('Forbidden resource');
99
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/services/base/base.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/services/base/base.service.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,8 @@ class DynamicApiGlobalStateService {
67
67
  return (key ? DynamicApiGlobalStateService._[key] : DynamicApiGlobalStateService._);
68
68
  }
69
69
  resetState(initialGlobalState = {}) {
70
+ DynamicApiGlobalStateService.entitySchemas$.next({});
71
+ DynamicApiGlobalStateService.connection = null;
70
72
  Object.assign(DynamicApiGlobalStateService._, { ...this.defaultGlobalState }, initialGlobalState);
71
73
  }
72
74
  updateState() {
@@ -78,5 +80,6 @@ class DynamicApiGlobalStateService {
78
80
  exports.DynamicApiGlobalStateService = DynamicApiGlobalStateService;
79
81
  DynamicApiGlobalStateService.initialized$ = new rxjs_1.BehaviorSubject(false);
80
82
  DynamicApiGlobalStateService.entitySchemas$ = new rxjs_1.BehaviorSubject({});
83
+ DynamicApiGlobalStateService.connection = null;
81
84
  DynamicApiGlobalStateService._ = {};
82
85
  //# sourceMappingURL=dynamic-api-global-state.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-api-global-state.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/services/dynamic-api-global-state/dynamic-api-global-state.service.ts"],"names":[],"mappings":";;;AACA,uCAAuE;AACvE,+BAAuC;AAGvC,MAAa,4BAA4B;IAkCvC,YAAY,qBAAqD,EAAE;QA1BlD,uBAAkB,GAAmC;YACpE,GAAG,EAAE,EAAE;YACP,cAAc,EAAE,wBAAwB;YACxC,oBAAoB,EAAE,IAAI;YAC1B,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,SAAS;YACpB,kBAAkB,EAAE,EAAE;YACtB,YAAY,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE;oBACR,SAAS;oBACT,QAAQ;oBACR,YAAY;oBACZ,WAAW;oBACX,YAAY;oBACZ,WAAW;oBACX,YAAY;oBACZ,eAAe;oBACf,cAAc;oBACd,YAAY;oBACZ,WAAW;iBACZ;aACF;SACF,CAAA;QAGC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,eAAe,CAAU,MAAe,EAAE,MAAiB;QAChE,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAChD,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAU,MAAe;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,IAAI,aAAa,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU;gBACb,MAAM,IAAA,2BAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;QAC3G,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAa,CAAC;IAChE,CAAC;IAED,GAAG,CAAI,CAAC,MAAM,EAAE,KAAK,CAA0F;QAC7G,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,GAAG,CAA4B,GAAiC;QAC9D,OAAO,CACL,GAAG,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CACtE,CAAC;IACT,CAAC;IAEO,UAAU,CAAC,qBAAqD,EAAE;QACxE,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACpG,CAAC;IAEO,WAAW;QACjB,IAAI,4BAA4B,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACnG,4BAA4B,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;;AA1FH,oEA2FC;AA1FyB,yCAAY,GAAG,IAAI,sBAAe,CAAU,KAAK,CAAC,AAAtC,CAAuC;AACnD,2CAAc,GAAI,IAAI,sBAAe,CAAgB,EAAE,CAAC,AAA1C,CAA2C;AAIlE,8BAAC,GAA0B,EAA2B,AAArD,CAAsD"}
1
+ {"version":3,"file":"dynamic-api-global-state.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/services/dynamic-api-global-state/dynamic-api-global-state.service.ts"],"names":[],"mappings":"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"}
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "2.3.16"
2
+ "version": "2.3.17"
3
3
  }
@@ -20,7 +20,6 @@ const e2e_setup_1 = require("./e2e.setup");
20
20
  require("dotenv/config");
21
21
  const utils_1 = require("./utils");
22
22
  describe('DynamicApiModule forRoot (e2e)', () => {
23
- let app;
24
23
  const uri = process.env.MONGO_DB_URL;
25
24
  const initModule = async (dynamicApiForRootOptions, initFixtures) => {
26
25
  const moduleRef = await testing_1.Test.createTestingModule({
@@ -35,7 +34,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
35
34
  await (0, e2e_setup_1.closeTestingApp)(mongoose_2.default.connections);
36
35
  });
37
36
  it('should initialize dynamic api module state with default options', async () => {
38
- app = await initModule({});
37
+ const app = await initModule({});
39
38
  expect(app).toBeDefined();
40
39
  expect(src_1.DynamicApiModule.state.get()).toStrictEqual({
41
40
  uri,
@@ -65,7 +64,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
65
64
  });
66
65
  });
67
66
  it('should initialize dynamic api module state with custom options', async () => {
68
- app = await initModule({
67
+ const app = await initModule({
69
68
  useGlobalCache: false,
70
69
  cacheOptions: {
71
70
  excludePaths: ['/fake-path'],
@@ -105,6 +104,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
105
104
  UserEntity = __decorate([
106
105
  (0, mongoose_1.Schema)({ collection: 'users' })
107
106
  ], UserEntity);
107
+ let app;
108
108
  beforeEach(async () => {
109
109
  app = await initModule({ useAuth: { userEntity: UserEntity } });
110
110
  });
@@ -140,7 +140,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
140
140
  },
141
141
  });
142
142
  });
143
- describe('POST /register', () => {
143
+ describe('POST /auth/register', () => {
144
144
  it('should throw a bad request exception if email is missing', async () => {
145
145
  const { body, status } = await e2e_setup_1.server.post('/auth/register', { username: 'unit-test', password: 'test-2' });
146
146
  expect(status).toBe(400);
@@ -165,7 +165,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
165
165
  expect(body).toEqual({ accessToken: expect.any(String) });
166
166
  });
167
167
  });
168
- describe('POST /login', () => {
168
+ describe('POST /auth/login', () => {
169
169
  it('should throw an unauthorized exception if email is missing', async () => {
170
170
  const { body, status } = await e2e_setup_1.server.post('/auth/login', { pass: 'test-2' });
171
171
  expect(status).toBe(401);
@@ -189,7 +189,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
189
189
  expect(body).toEqual({ accessToken: expect.any(String) });
190
190
  });
191
191
  });
192
- describe('GET /account', () => {
192
+ describe('GET /auth/account', () => {
193
193
  it('should throw an unauthorized exception if access token is missing', async () => {
194
194
  const { body, status } = await e2e_setup_1.server.get('/auth/account');
195
195
  expect(status).toBe(401);
@@ -208,9 +208,10 @@ describe('DynamicApiModule forRoot (e2e)', () => {
208
208
  });
209
209
  });
210
210
  });
211
- describe('useAuth with userEntity and jwt options', () => {
211
+ describe('useAuth with jwt options', () => {
212
212
  let jwtService;
213
213
  let token;
214
+ let app;
214
215
  let UserEntity = class UserEntity extends src_1.BaseEntity {
215
216
  };
216
217
  __decorate([
@@ -291,7 +292,8 @@ describe('DynamicApiModule forRoot (e2e)', () => {
291
292
  });
292
293
  });
293
294
  });
294
- describe('useAuth with userEntity and validation options', () => {
295
+ describe('useAuth with validation options', () => {
296
+ let app;
295
297
  let UserEntity = class UserEntity extends src_1.BaseEntity {
296
298
  };
297
299
  __decorate([
@@ -325,7 +327,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
325
327
  },
326
328
  });
327
329
  });
328
- describe('POST /register', () => {
330
+ describe('POST /auth/register', () => {
329
331
  it('should throw a bad request exception if payload contains non whitelisted property', async () => {
330
332
  const { body, status } = await e2e_setup_1.server.post('/auth/register', { email: 'unit@test.co', password: 'Test-2', role: 'ADMIN' });
331
333
  expect(status).toBe(400);
@@ -353,7 +355,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
353
355
  expect(body).toEqual({ accessToken: expect.any(String) });
354
356
  });
355
357
  });
356
- describe('POST /login', () => {
358
+ describe('POST /auth/login', () => {
357
359
  beforeEach(async () => {
358
360
  await e2e_setup_1.server.post('/auth/register', { email: 'unit@test.co', password: 'Test-2' });
359
361
  });
@@ -390,7 +392,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
390
392
  });
391
393
  });
392
394
  });
393
- describe('POST /register with register options', () => {
395
+ describe('POST /auth/register with register options', () => {
394
396
  let User = class User extends src_1.BaseEntity {
395
397
  constructor() {
396
398
  super(...arguments);
@@ -515,7 +517,7 @@ describe('DynamicApiModule forRoot (e2e)', () => {
515
517
  });
516
518
  });
517
519
  });
518
- describe('POST /login with login options', () => {
520
+ describe('POST /auth/login with login options', () => {
519
521
  let User = class User extends src_1.BaseEntity {
520
522
  constructor() {
521
523
  super(...arguments);
@@ -626,5 +628,191 @@ describe('DynamicApiModule forRoot (e2e)', () => {
626
628
  });
627
629
  });
628
630
  });
631
+ describe('useAuth with resetPassword options', () => {
632
+ let User = class User extends src_1.BaseEntity {
633
+ };
634
+ __decorate([
635
+ (0, mongoose_1.Prop)({ type: String, required: true }),
636
+ __metadata("design:type", String)
637
+ ], User.prototype, "email", void 0);
638
+ __decorate([
639
+ (0, mongoose_1.Prop)({ type: String, required: true }),
640
+ __metadata("design:type", String)
641
+ ], User.prototype, "password", void 0);
642
+ __decorate([
643
+ (0, mongoose_1.Prop)({ type: Boolean, default: false }),
644
+ __metadata("design:type", Boolean)
645
+ ], User.prototype, "isVerified", void 0);
646
+ __decorate([
647
+ (0, mongoose_1.Prop)({ type: String }),
648
+ __metadata("design:type", String)
649
+ ], User.prototype, "resetPasswordToken", void 0);
650
+ User = __decorate([
651
+ (0, mongoose_1.Schema)({ collection: 'users' })
652
+ ], User);
653
+ let model;
654
+ let user;
655
+ let client;
656
+ let app;
657
+ beforeEach(async () => {
658
+ user = { email: 'user@test.co', password: 'user', isVerified: true };
659
+ client = { email: 'client@test.co', password: 'client' };
660
+ const bcryptService = new src_1.BcryptService();
661
+ const fixtures = async (_) => {
662
+ model = await (0, utils_1.getModelFromEntity)(User);
663
+ await model.insertMany([
664
+ { ...user, password: await bcryptService.hashPassword(user.password) },
665
+ { ...client, password: await bcryptService.hashPassword(client.password) },
666
+ ]);
667
+ };
668
+ app = await initModule({
669
+ useAuth: {
670
+ userEntity: User,
671
+ resetPassword: {
672
+ emailField: 'email',
673
+ expirationInMinutes: 1,
674
+ resetPasswordCallback: async ({ resetPasswordToken }, { updateUserByEmail }) => {
675
+ await updateUserByEmail({ $set: { resetPasswordToken } });
676
+ },
677
+ changePasswordAbilityPredicate: (user) => user.isVerified && !!user.resetPasswordToken,
678
+ changePasswordCallback: async (user, { updateOneDocument }) => {
679
+ await updateOneDocument(User, { _id: user.id }, { $unset: { resetPasswordToken: 1 } });
680
+ },
681
+ },
682
+ },
683
+ }, fixtures);
684
+ });
685
+ describe('POST /auth/reset-password', () => {
686
+ it('should throw a bad request exception if email is missing', async () => {
687
+ const { body, status } = await e2e_setup_1.server.post('/auth/reset-password', {});
688
+ expect(status).toBe(400);
689
+ expect(body).toEqual({
690
+ error: 'Bad Request',
691
+ message: [
692
+ 'email must be an email',
693
+ 'email should not be empty',
694
+ 'email must be a string',
695
+ ],
696
+ statusCode: 400,
697
+ });
698
+ });
699
+ it('should throw a bad request exception if email is invalid', async () => {
700
+ const { body, status } = await e2e_setup_1.server.post('/auth/reset-password', { email: 'unit.test.co' });
701
+ expect(status).toBe(400);
702
+ expect(body).toEqual({
703
+ error: 'Bad Request',
704
+ message: ['email must be an email'],
705
+ statusCode: 400,
706
+ });
707
+ });
708
+ it('should not throw an exception if email is not found', async () => {
709
+ const { body, status } = await e2e_setup_1.server.post('/auth/reset-password', { email: 'invalid@test.co' });
710
+ expect(status).toBe(204);
711
+ expect(body).toEqual({});
712
+ });
713
+ describe('resetPasswordCallback', () => {
714
+ it('should set resetPasswordToken if email is valid', async () => {
715
+ const { email } = user;
716
+ const { resetPasswordToken: resetPasswordTokenBeforeUpdate } = (await model.findOne({ email }).lean().exec());
717
+ const { status } = await e2e_setup_1.server.post('/auth/reset-password', { email });
718
+ const { resetPasswordToken: resetPasswordTokenAfterUpdate } = (await model.findOne({ email }).lean().exec());
719
+ expect(status).toBe(204);
720
+ expect(resetPasswordTokenBeforeUpdate).toStrictEqual(undefined);
721
+ expect(resetPasswordTokenAfterUpdate).toStrictEqual(expect.any(String));
722
+ });
723
+ });
724
+ });
725
+ describe('PATCH /auth/change-password', () => {
726
+ it('should throw a bad request exception if resetPasswordToken is missing', async () => {
727
+ const { body, status } = await e2e_setup_1.server.patch('/auth/change-password', { newPassword: 'test' });
728
+ expect(status).toBe(400);
729
+ expect(body).toEqual({
730
+ error: 'Bad Request',
731
+ message: [
732
+ 'resetPasswordToken should not be empty',
733
+ 'resetPasswordToken must be a string',
734
+ ],
735
+ statusCode: 400,
736
+ });
737
+ });
738
+ it('should throw a bad request exception if newPassword is missing', async () => {
739
+ const { email } = user;
740
+ await e2e_setup_1.server.post('/auth/reset-password', { email });
741
+ const { resetPasswordToken: resetPasswordTokenAfterUpdate } = (await model.findOne({ email }).lean().exec());
742
+ const resetPasswordToken = resetPasswordTokenAfterUpdate;
743
+ const { body, status } = await e2e_setup_1.server.patch('/auth/change-password', { resetPasswordToken });
744
+ expect(status).toBe(400);
745
+ expect(body).toEqual({
746
+ error: 'Bad Request',
747
+ message: [
748
+ 'newPassword should not be empty',
749
+ 'newPassword must be a string',
750
+ ],
751
+ statusCode: 400,
752
+ });
753
+ });
754
+ it('should throw an unauthorized exception if resetPasswordToken is invalid', async () => {
755
+ const { body, status } = await e2e_setup_1.server.patch('/auth/change-password', { resetPasswordToken: 'test', newPassword: 'newPassword' });
756
+ expect(status).toBe(400);
757
+ expect(body).toEqual({
758
+ error: 'Bad Request',
759
+ message: 'Invalid reset password token. Please redo the reset password process.',
760
+ statusCode: 400,
761
+ });
762
+ });
763
+ it('should throw an unauthorized exception if resetPasswordToken is expired', async () => {
764
+ const jwtService = app.get(jwt_1.JwtService);
765
+ const expiredResetPasswordToken = jwtService.sign({ email: user.email }, { expiresIn: 1 });
766
+ await (0, utils_1.wait)(500);
767
+ const { body, status } = await e2e_setup_1.server.patch('/auth/change-password', { resetPasswordToken: expiredResetPasswordToken, newPassword: 'newPassword' });
768
+ expect(status).toBe(401);
769
+ expect(body).toEqual({
770
+ error: 'Unauthorized',
771
+ message: 'Time to reset password has expired. Please redo the reset password process.',
772
+ statusCode: 401,
773
+ });
774
+ });
775
+ describe('changePasswordAbilityPredicate', () => {
776
+ let resetPasswordToken;
777
+ beforeEach(async () => {
778
+ await e2e_setup_1.server.post('/auth/reset-password', { email: client.email });
779
+ const { resetPasswordToken: token } = (await model.findOne({ email: client.email }).lean().exec());
780
+ resetPasswordToken = token;
781
+ });
782
+ it('should throw a forbidden exception if user is not allowed to change password', async () => {
783
+ expect(resetPasswordToken).toStrictEqual(expect.any(String));
784
+ const { body, status } = await e2e_setup_1.server.patch('/auth/change-password', { resetPasswordToken, newPassword: 'newPassword' });
785
+ expect(status).toBe(403);
786
+ expect(body).toEqual({
787
+ error: 'Forbidden',
788
+ message: 'You are not allowed to change your password.',
789
+ statusCode: 403,
790
+ });
791
+ });
792
+ });
793
+ describe('changePasswordCallback', () => {
794
+ let resetPasswordToken;
795
+ beforeEach(async () => {
796
+ await e2e_setup_1.server.post('/auth/reset-password', { email: user.email });
797
+ const { resetPasswordToken: token } = (await model.findOne({ email: user.email }).lean().exec());
798
+ resetPasswordToken = token;
799
+ });
800
+ it('should change password and unset resetPasswordToken if resetPasswordToken is valid', async () => {
801
+ expect(resetPasswordToken).toStrictEqual(expect.any(String));
802
+ const newPassword = 'newPassword';
803
+ const bcryptService = app.get(src_1.BcryptService);
804
+ const { password: passwordBeforeUpdate } = (await model.findOne({ email: user.email }).lean().exec());
805
+ const { status } = await e2e_setup_1.server.patch('/auth/change-password', { resetPasswordToken, newPassword });
806
+ const { password: passwordAfterUpdate, resetPasswordToken: tokenAfterUpdate } = (await model.findOne({ email: user.email }).lean().exec());
807
+ const isPreviousPassword = await bcryptService.comparePassword(user.password, passwordBeforeUpdate);
808
+ expect(isPreviousPassword).toBe(true);
809
+ const isNewPassword = await bcryptService.comparePassword(newPassword, passwordAfterUpdate);
810
+ expect(isNewPassword).toBe(true);
811
+ expect(status).toBe(204);
812
+ expect(tokenAfterUpdate).toStrictEqual(undefined);
813
+ });
814
+ });
815
+ });
816
+ });
629
817
  });
630
818
  //# sourceMappingURL=dynamic-api-for-root.e2e-spec.js.map