diff --git a/hotel-management/src/services/__tests__/roomService.test.ts b/hotel-management/src/services/__tests__/roomService.test.ts new file mode 100644 index 0000000..f3cc3a5 --- /dev/null +++ b/hotel-management/src/services/__tests__/roomService.test.ts @@ -0,0 +1,71 @@ +import { waitFor } from '@testing-library/react'; + +// Services +import { + createRoom, + deleteRoom, + getAllRooms, + updateRoom, +} from '@service/roomServices'; + +// Types +import { IRoom } from '@type/rooms'; + +const mockGetAllRooms = jest.fn(getAllRooms); +const mockUpdateRoom = jest.fn(updateRoom); +const mockCreateRoom = jest.fn(createRoom); +const mockDeleteRoom = jest.fn(deleteRoom); + +const sampleData: IRoom = { + id: 999, + name: 'Room name test', + price: 9999, + status: true, +}; + +describe('CRUD Room testing', () => { + test('Fetch room data', async () => { + mockGetAllRooms.mockResolvedValue([ + { + id: 1, + name: 'Nezumi', + price: 2500, + status: true, + }, + { + id: 2, + name: 'Loi Phan', + price: 8500, + status: false, + }, + ]); + const result = await mockGetAllRooms('name', 'asc', ''); + + await waitFor(() => expect(result.length).toEqual(2)); + }); + + test('Create room', async () => { + mockCreateRoom.mockResolvedValue(sampleData); + + const result = await mockCreateRoom(sampleData); + + await waitFor(() => expect(result).toBeTruthy()); + }); + + test('Update room', async () => { + mockUpdateRoom.mockResolvedValue({ + id: 1, + name: 'Nezumi', + price: 2500, + status: true, + }); + const result = await mockUpdateRoom(sampleData); + + await waitFor(() => expect(result).toBeTruthy()); + }); + + test('Delete room', async () => { + mockDeleteRoom.mockImplementation(() => Promise.resolve()); + await mockDeleteRoom(1); + }); +}); diff --git a/hotel-management/src/services/__tests__/userService.test.ts b/hotel-management/src/services/__tests__/userService.test.ts new file mode 100644 index 0000000..3b56b26 --- /dev/null +++ b/hotel-management/src/services/__tests__/userService.test.ts @@ -0,0 +1,54 @@ +import { waitFor } from '@testing-library/react'; + +// Services +import { createUser, getAllUsers, updateUser } from '@service/userServices'; + +// Types +import { IUser } from '@type/users'; + +const mockGetAllUsers = jest.fn(getAllUsers); +const mockCreateUser = jest.fn(createUser); +const mockUpdateUser = jest.fn(updateUser); + +const sampleData: IUser = { + id: 999, + name: 'User name test', + phone: '123456789', + isBooked: true, +}; + +describe('CRUD User testing', () => { + test('Fetch user data', async () => { + mockGetAllUsers.mockResolvedValue([ + { + id: 1, + name: 'Nezumi', + phone: '0324422123', + isBooked: true, + }, + { + id: 2, + name: 'Loi Phan', + phone: '0324422145', + isBooked: false, + }, + ]); + const result = await mockGetAllUsers('name', 'asc', ''); + + await waitFor(() => expect(result.length).toEqual(2)); + }); + + test('Create user', async () => { + mockCreateUser.mockResolvedValue(sampleData); + const result = await mockCreateUser(sampleData); + + await waitFor(() => expect(result).toBeTruthy()); + }); + + test('Update user', async () => { + mockUpdateUser.mockResolvedValue(sampleData); + const result = await mockUpdateUser(sampleData); + + await waitFor(() => expect(result).toBeTruthy()); + }); +});