Refactor to vertical slice
This commit is contained in:
@@ -2,8 +2,8 @@ import { beforeEach, expect, test } from 'bun:test';
|
||||
|
||||
import { prismaMock, sendMailMock, transactionMock } from '../support/prisma.mock';
|
||||
|
||||
const { ComplexMembersError, inviteComplexUser } = await import(
|
||||
'@/modules/complex/services/complex-members.service'
|
||||
const { inviteComplexUser } = await import(
|
||||
'@/modules/complex/features/invite-complex-user/invite-complex-user.business'
|
||||
);
|
||||
|
||||
beforeEach(() => {
|
||||
@@ -32,8 +32,10 @@ test('creates a pending invitation and sends the email', async () => {
|
||||
email: ' New.Member@example.com ',
|
||||
});
|
||||
|
||||
expect(result.invitation.email).toBe('new.member@example.com');
|
||||
expect(result.invitation.status).toBe('PENDING');
|
||||
expect(result.ok).toBe(true);
|
||||
if (!result.ok) return;
|
||||
expect(result.value.invitation.email).toBe('new.member@example.com');
|
||||
expect(result.value.invitation.status).toBe('PENDING');
|
||||
expect(prismaMock.complexInvitation.create).toHaveBeenCalledTimes(1);
|
||||
|
||||
const createArgs = prismaMock.complexInvitation.create.mock.calls[0]?.[0] as {
|
||||
@@ -69,18 +71,11 @@ test('rejects when the invite target already belongs to the complex', async () =
|
||||
prismaMock.complex.findUnique.mockResolvedValue({ complexName: 'Playzer Norte' } as never);
|
||||
prismaMock.user.findUnique.mockResolvedValue({ id: 'member-1' } as never);
|
||||
|
||||
let caught: unknown;
|
||||
const result = await inviteComplexUser('admin-1', 'complex-1', {
|
||||
email: 'member@example.com',
|
||||
});
|
||||
|
||||
try {
|
||||
await inviteComplexUser('admin-1', 'complex-1', {
|
||||
email: 'member@example.com',
|
||||
});
|
||||
} catch (error) {
|
||||
caught = error;
|
||||
}
|
||||
|
||||
expect(caught).toBeInstanceOf(ComplexMembersError);
|
||||
expect((caught as InstanceType<typeof ComplexMembersError>).status).toBe(409);
|
||||
expect(result.ok).toBe(false);
|
||||
expect(transactionMock).not.toHaveBeenCalled();
|
||||
expect(sendMailMock).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user