From c3eb184b73169d0c7611298f7e3fb00bde72a21a Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Fri, 11 Dec 2020 16:21:56 +0100
Subject: [PATCH] feat: add tu for password change

---
 src/users/users.service.spec.ts | 18 ++++++++++++++++++
 src/users/users.service.ts      |  2 +-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/users/users.service.spec.ts b/src/users/users.service.spec.ts
index a8a4419cb..9f9656801 100644
--- a/src/users/users.service.spec.ts
+++ b/src/users/users.service.spec.ts
@@ -99,4 +99,22 @@ describe('UsersService', () => {
       expect(await service.validateUser('add3d', 'qdqdqdqd185')).toBe(result);
     });
   });
+
+  describe('changeUserPassword', () => {
+    it('should not change password', async () => {
+      const result = new HttpException('Invalid token', HttpStatus.UNAUTHORIZED);
+      jest.spyOn(service, 'changeUserPassword').mockImplementation(async (): Promise<HttpException> => result);
+      expect(await service.changeUserPassword('add3d', 'azertyU1', 'azertyU1!d')).toBe(result);
+    });
+    it('should not change password', async () => {
+      const result = new HttpException('Invalid token', HttpStatus.UNPROCESSABLE_ENTITY);
+      jest.spyOn(service, 'changeUserPassword').mockImplementation(async (): Promise<HttpException> => result);
+      expect(await service.changeUserPassword('add3d', 'azertyU1!d', 'a')).toBe(result);
+    });
+    it('should not change password', async () => {
+      const result = new HttpException('Invalid token', HttpStatus.CREATED);
+      jest.spyOn(service, 'changeUserPassword').mockImplementation(async (): Promise<HttpException> => result);
+      expect(await service.changeUserPassword('add3d', 'azertyU1!d', 'azertyU1!d')).toBe(result);
+    });
+  });
 });
diff --git a/src/users/users.service.ts b/src/users/users.service.ts
index c4db445d0..60780de2b 100644
--- a/src/users/users.service.ts
+++ b/src/users/users.service.ts
@@ -134,7 +134,7 @@ export class UsersService {
     }
   }
 
-  public async changeUserPassword(userId: string, oldPassword: string, newPassword: string) {
+  public async changeUserPassword(userId: string, oldPassword: string, newPassword: string): Promise<any> {
     const user = await this.findById(userId, true);
     const arePasswordEqual = await this.comparePassword(oldPassword, user.password);
     if (!arePasswordEqual) {
-- 
GitLab