diff --git a/src/room/mock/room.service.mock.ts b/src/room/mock/room.service.mock.ts index 27918e47123c1e20b3d63a467cd14d7d255baba8..a104e7071b3e972ec7a829ebc1e7f3e06fd55ad5 100644 --- a/src/room/mock/room.service.mock.ts +++ b/src/room/mock/room.service.mock.ts @@ -20,11 +20,17 @@ export class MockRoomService { }); } - public async update(id: number, category: Category, name: string) { + public async update( + id: number, + category: Category, + name: string, + password?: string, + ) { if (id === 1 && category === this.testCategory) { return Promise.resolve({ ...this.testRoom, name, + password, }); } throw new Error('Room not found'); diff --git a/src/room/room.controller.spec.ts b/src/room/room.controller.spec.ts index e39ac51be73419a17e0723925991555a7c6c6f48..63a2c410ba8e05d1598617b564b9e93bda4d7112 100644 --- a/src/room/room.controller.spec.ts +++ b/src/room/room.controller.spec.ts @@ -127,6 +127,7 @@ describe('RoomController', () => { describe('update', () => { const updateRoomDto = { name: 'Updated Room', + password: 'new-password', }; it('should update the room and return the updated room', async () => { @@ -139,6 +140,7 @@ describe('RoomController', () => { expect(result).toEqual( expect.objectContaining({ name: updateRoomDto.name, + password: updateRoomDto.password, }), ); }); diff --git a/src/room/room.controller.ts b/src/room/room.controller.ts index c98aa659780bee31855fa563800d90576237b702..b6a84f1c0499124cfa8b0c8c79faddbe34c9e22f 100644 --- a/src/room/room.controller.ts +++ b/src/room/room.controller.ts @@ -60,7 +60,7 @@ export class RoomController { ) { const user = await this.auth.user(); const category = await this.categories.get(categoryId, user); - return this.rooms.update(roomId, category, data.name); + return this.rooms.update(roomId, category, data.name, data.password); } /** diff --git a/src/room/room.entity.ts b/src/room/room.entity.ts index 928cf9aec33933dbcb76b8fc92b3406da27c4bb7..ba494d8faf71e0791c2aea34caef9f7b8b5aeeac 100644 --- a/src/room/room.entity.ts +++ b/src/room/room.entity.ts @@ -21,7 +21,7 @@ export class Room { @Property() name: string; - @Property({ hidden: true }) + @Property() password?: string; @ManyToOne({ onDelete: 'cascade' }) diff --git a/src/room/room.service.spec.ts b/src/room/room.service.spec.ts index e4fc30049c1a56f7de7cd8c025815574394f8d4d..22e348a7466d68faf202522b41ba2382175f8365 100644 --- a/src/room/room.service.spec.ts +++ b/src/room/room.service.spec.ts @@ -125,10 +125,17 @@ describe('RoomService', () => { describe('update', () => { it('should successfully update the room name and return the updated room', async () => { const updatedName = 'Updated Room'; - const result = await service.update(1, TEST_CATEGORY, updatedName); + const updatedPassword = 'new-password'; + const result = await service.update( + 1, + TEST_CATEGORY, + updatedName, + updatedPassword, + ); expect(result).toEqual(TEST_ROOM); expect(TEST_ROOM.name).toBe(updatedName); + expect(TEST_ROOM.password).toBe(updatedPassword); expect(entityManager.persistAndFlush).toHaveBeenCalledWith(TEST_ROOM); }); diff --git a/src/room/room.service.ts b/src/room/room.service.ts index ddba5964e9ced3342b585b32a94715cb00f9385d..6220922bcd01f8f196e32eb2283893f69530c591 100644 --- a/src/room/room.service.ts +++ b/src/room/room.service.ts @@ -61,16 +61,19 @@ export class RoomService { * @param id - The ID of the room. * @param category - The category of the room. * @param name - The new name for the room. + * @param password - The optional password for the room. * @returns The updated room. */ public async update( id: number, category: Category, name: string, + password?: string, ): Promise<Room> { const room = await this.get(id, category); room.name = name; + room.password = password; await this.em.persistAndFlush(room);