59 lines
1.9 KiB
TypeScript
59 lines
1.9 KiB
TypeScript
import { Test, TestingModule } from "@nestjs/testing";
|
|
import { CategoriesRepository } from "../categories/repositories/categories.repository";
|
|
import { ContentsRepository } from "../contents/repositories/contents.repository";
|
|
import { UsersRepository } from "../users/repositories/users.repository";
|
|
import { AdminService } from "./admin.service";
|
|
|
|
describe("AdminService", () => {
|
|
let service: AdminService;
|
|
let _usersRepository: UsersRepository;
|
|
let _contentsRepository: ContentsRepository;
|
|
let _categoriesRepository: CategoriesRepository;
|
|
|
|
const mockUsersRepository = {
|
|
countAll: jest.fn(),
|
|
};
|
|
|
|
const mockContentsRepository = {
|
|
count: jest.fn(),
|
|
};
|
|
|
|
const mockCategoriesRepository = {
|
|
countAll: jest.fn(),
|
|
};
|
|
|
|
beforeEach(async () => {
|
|
const module: TestingModule = await Test.createTestingModule({
|
|
providers: [
|
|
AdminService,
|
|
{ provide: UsersRepository, useValue: mockUsersRepository },
|
|
{ provide: ContentsRepository, useValue: mockContentsRepository },
|
|
{ provide: CategoriesRepository, useValue: mockCategoriesRepository },
|
|
],
|
|
}).compile();
|
|
|
|
service = module.get<AdminService>(AdminService);
|
|
_usersRepository = module.get<UsersRepository>(UsersRepository);
|
|
_contentsRepository = module.get<ContentsRepository>(ContentsRepository);
|
|
_categoriesRepository =
|
|
module.get<CategoriesRepository>(CategoriesRepository);
|
|
});
|
|
|
|
it("should return stats", async () => {
|
|
mockUsersRepository.countAll.mockResolvedValue(10);
|
|
mockContentsRepository.count.mockResolvedValue(20);
|
|
mockCategoriesRepository.countAll.mockResolvedValue(5);
|
|
|
|
const result = await service.getStats();
|
|
|
|
expect(result).toEqual({
|
|
users: 10,
|
|
contents: 20,
|
|
categories: 5,
|
|
});
|
|
expect(mockUsersRepository.countAll).toHaveBeenCalled();
|
|
expect(mockContentsRepository.count).toHaveBeenCalledWith({});
|
|
expect(mockCategoriesRepository.countAll).toHaveBeenCalled();
|
|
});
|
|
});
|