import { Test, TestingModule } from '@nestjs/testing'; import { UserService } from '../../src/modules/identity/application/services/user.service'; import { PrismaService } from '../../src/shared/prisma.service'; import { IUser } from '../../src/modules/identity/domain/repositories/user.interface'; describe('UserService', () => { let service: UserService; let prisma: Partial; let userRepo: Partial; beforeEach(async () => { prisma = { user: { update: jest.fn().mockResolvedValue(null), findMany: jest.fn().mockResolvedValue([]), }, } as any; userRepo = { create: jest.fn().mockImplementation(async (user) => { return { ...user, id: 'user-1' }; }), getById: jest.fn().mockResolvedValue({ id: 'user-1', username: 'u', email: 'e' }), existByEmail: jest.fn().mockResolvedValue(false), } as any; const module: TestingModule = await Test.createTestingModule({ providers: [ UserService, { provide: PrismaService, useValue: prisma }, { provide: IUser, useValue: userRepo }, ], }).compile(); service = module.get(UserService); }); it('createUser - provisioning disabled', async () => { await expect(service.createUser({ username: 'u', email: 'e' })).rejects.toThrow(); }); });