CV/src/intro/intro.service.spec.ts

75 lines
2.1 KiB
TypeScript

import { Test, TestingModule } from "@nestjs/testing";
import { IntroService } from "@/intro/intro.service";
import introDataset from "@/intro/intro.dataset";
describe("IntroService", () => {
let service: IntroService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [IntroService],
}).compile();
jest.spyOn(introDataset, "getData").mockImplementation(() => [
{
category: "Personal details",
name: "Name",
value: "Bob ross",
},
{
category: "Personal details",
name: "Gender",
value: "Male",
},
{
category: "Personal details",
name: "Address",
value: "",
},
{
category: "Personal details",
name: "Phone number",
value: "+31 6 00 00 00 00",
},
{
category: "Personal details",
name: "Date of birth",
value: "1942-10-29",
},
{
category: "Hobbies",
name: "Painting",
value: "",
},
]);
service = module.get<IntroService>(IntroService);
});
it("should be defined", () => {
expect(service).toBeDefined();
});
describe("getMany method", () => {
it("should be defined", () => {
expect(service.getMany).toBeDefined();
});
it("should return an array with 6 entries", () => {
const intro = service.getMany();
expect(Array.isArray(intro)).toBe(true);
expect(intro.length).toBe(6);
});
it("should return a filtered array with 5 entries", () => {
const intro = service.getMany({
category: "Personal details",
});
expect(Array.isArray(intro)).toBe(true);
expect(intro.length).toBe(5);
});
});
});