Skip to content

Commit b8c23ba

Browse files
committed
Added tests to schedule service and controller
1 parent d395076 commit b8c23ba

File tree

5 files changed

+115
-13
lines changed

5 files changed

+115
-13
lines changed

src/booking/booking.service.spec.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,14 @@ describe("BookingService", () => {
2323
let findAllBookingsSpy: jest.SpyInstance;
2424

2525
beforeEach(() => {
26-
findAllBookingsSpy = jest
27-
.spyOn(service, "findAllBookings")
28-
.mockResolvedValue([mockBooking, mockBooking, mockBooking]);
26+
findAllBookingsSpy = jest.spyOn(service, "findAllBookings").mockResolvedValue([mockBooking, mockBooking]);
2927
});
3028

3129
it("should get all bookings", async () => {
3230
const result = await service.findAllBookings();
3331

3432
expect(findAllBookingsSpy).toHaveBeenCalled();
35-
expect(result).toEqual([mockBooking, mockBooking, mockBooking]);
33+
expect(result).toEqual([mockBooking, mockBooking]);
3634
});
3735

3836
it("should get bookings with the specified limit", async () => {

src/location/location.service.spec.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,14 @@ describe("LocationService", () => {
2323
let findAllLocationsSpy: jest.SpyInstance;
2424

2525
beforeEach(() => {
26-
findAllLocationsSpy = jest
27-
.spyOn(service, "findAllLocations")
28-
.mockResolvedValue([mockLocation, mockLocation, mockLocation]);
26+
findAllLocationsSpy = jest.spyOn(service, "findAllLocations").mockResolvedValue([mockLocation, mockLocation]);
2927
});
3028

3129
it("should get all locations", async () => {
3230
const result = await service.findAllLocations();
3331

3432
expect(findAllLocationsSpy).toHaveBeenCalled();
35-
expect(result).toEqual([mockLocation, mockLocation, mockLocation]);
33+
expect(result).toEqual([mockLocation, mockLocation]);
3634
});
3735

3836
it("should get all locations with specified limit", async () => {
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import { Test } from "@nestjs/testing";
2+
3+
import { ScheduleController } from "./schedule.controller";
4+
import { mockSchedule, mockUpdateSchedule } from "./schedule.mocks";
5+
import { ScheduleService } from "./schedule.service";
6+
7+
describe("ScheduleController", () => {
8+
let controller: ScheduleController;
9+
let scheduleService: ScheduleService;
10+
11+
const mockScheduleService = {
12+
findSchedule: jest.fn().mockResolvedValue([mockSchedule, mockSchedule]),
13+
updateSchedule: jest.fn((_, data) => Promise.resolve({ ...mockSchedule, ...data }))
14+
};
15+
16+
beforeEach(async () => {
17+
const moduleRef = await Test.createTestingModule({
18+
providers: [
19+
{
20+
provide: ScheduleService,
21+
useValue: mockScheduleService
22+
}
23+
],
24+
controllers: [ScheduleController]
25+
}).compile();
26+
27+
controller = moduleRef.get(ScheduleController);
28+
scheduleService = moduleRef.get(ScheduleService);
29+
});
30+
31+
it("should be defined", () => {
32+
expect(controller).toBeDefined();
33+
});
34+
35+
it("scheduleService should be defined", () => {
36+
expect(scheduleService).toBeDefined();
37+
});
38+
39+
describe("findAll", () => {
40+
it("should get schedule for a service with the specified id", async () => {
41+
const result = await controller.findAll(mockSchedule.serviceId);
42+
43+
expect(scheduleService.findSchedule).toHaveBeenCalled();
44+
expect(result).toEqual([mockSchedule, mockSchedule]);
45+
});
46+
});
47+
48+
describe("update", () => {
49+
it("should update a schedule", async () => {
50+
const result = await controller.update(mockSchedule.id, mockUpdateSchedule);
51+
52+
expect(result).toEqual({ ...mockSchedule, ...mockUpdateSchedule });
53+
});
54+
});
55+
});
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { Test } from "@nestjs/testing";
2+
3+
import { PrismaService } from "../prisma/prisma.service";
4+
import { mockSchedule, mockUpdateSchedule } from "./schedule.mocks";
5+
import { ScheduleService } from "./schedule.service";
6+
7+
describe("ScheduleService", () => {
8+
let service: ScheduleService;
9+
10+
beforeEach(async () => {
11+
const moduleRef = await Test.createTestingModule({
12+
providers: [ScheduleService, PrismaService]
13+
}).compile();
14+
15+
service = moduleRef.get(ScheduleService);
16+
});
17+
18+
it("should be defined", () => {
19+
expect(service).toBeDefined();
20+
});
21+
22+
describe("findSchedule", () => {
23+
it("should get a schedule", async () => {
24+
const findScheduleSpy = jest.spyOn(service, "findSchedule").mockResolvedValue([mockSchedule, mockSchedule]);
25+
const result = await service.findSchedule({ serviceId: mockSchedule.serviceId });
26+
27+
expect(findScheduleSpy).toHaveBeenCalled();
28+
expect(result).toEqual([mockSchedule, mockSchedule]);
29+
});
30+
});
31+
32+
describe("createSchedule", () => {
33+
it("should create a schedule", async () => {
34+
const createScheduleSpy = jest.spyOn(service, "createSchedule").mockResolvedValue([mockSchedule, mockSchedule]);
35+
const result = await service.createSchedule(mockSchedule.serviceId);
36+
37+
expect(createScheduleSpy).toHaveBeenCalledWith(mockSchedule.serviceId);
38+
expect(result).toEqual([mockSchedule, mockSchedule]);
39+
});
40+
});
41+
42+
describe("updateSchedule", () => {
43+
it("should update a schedule", async () => {
44+
const mockUpdatedSchedule = { ...mockSchedule, ...mockUpdateSchedule };
45+
const updateScheduleSpy = jest.spyOn(service, "updateSchedule").mockResolvedValue(mockUpdatedSchedule);
46+
const result = await service.updateSchedule(mockSchedule.id, mockUpdateSchedule);
47+
48+
expect(updateScheduleSpy).toHaveBeenCalledWith(mockSchedule.id, mockUpdateSchedule);
49+
expect(result).toEqual(mockUpdatedSchedule);
50+
});
51+
});
52+
});

src/service/service.service.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Test } from "@nestjs/testing";
22

33
import { PrismaService } from "../prisma/prisma.service";
4+
import { ScheduleService } from "../schedule/schedule.service";
45
import { mockCreateService, mockService, mockUpdateService } from "./service.mocks";
56
import { ServiceService } from "./service.service";
67

@@ -9,7 +10,7 @@ describe("ServiceService", () => {
910

1011
beforeEach(async () => {
1112
const moduleRef = await Test.createTestingModule({
12-
providers: [ServiceService, PrismaService]
13+
providers: [ServiceService, PrismaService, ScheduleService]
1314
}).compile();
1415

1516
service = moduleRef.get(ServiceService);
@@ -23,16 +24,14 @@ describe("ServiceService", () => {
2324
let findAllServicesSpy: jest.SpyInstance;
2425

2526
beforeEach(() => {
26-
findAllServicesSpy = jest
27-
.spyOn(service, "findAllServices")
28-
.mockResolvedValue([mockService, mockService, mockService]);
27+
findAllServicesSpy = jest.spyOn(service, "findAllServices").mockResolvedValue([mockService, mockService]);
2928
});
3029

3130
it("should get all services", async () => {
3231
const result = await service.findAllServices();
3332

3433
expect(findAllServicesSpy).toHaveBeenCalled();
35-
expect(result).toEqual([mockService, mockService, mockService]);
34+
expect(result).toEqual([mockService, mockService]);
3635
});
3736

3837
it("should get all services with specified limit", async () => {

0 commit comments

Comments
 (0)