test(api): add domain layer unit tests across all modules

Cover admin events, notifications, reviews, search VOs, listings (property,
media, events, price/geo/address VOs), auth events, payment events,
subscription events, and analytics events. Raises domain test coverage
from ~24% to ~75%.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Ho Ngoc Hai
2026-04-09 00:36:39 +07:00
parent 801e29e65c
commit 62f4f001b6
14 changed files with 973 additions and 1 deletions

View File

@@ -0,0 +1,38 @@
import { describe, it, expect } from 'vitest';
import { UserRegisteredEvent } from '../events/user-registered.event';
import { AgentVerifiedEvent } from '../events/agent-verified.event';
describe('Auth Domain Events', () => {
describe('UserRegisteredEvent', () => {
it('creates event with correct properties', () => {
const event = new UserRegisteredEvent('user-1', '+84912345678', 'BUYER');
expect(event.eventName).toBe('user.registered');
expect(event.aggregateId).toBe('user-1');
expect(event.phone).toBe('+84912345678');
expect(event.role).toBe('BUYER');
expect(event.occurredAt).toBeInstanceOf(Date);
});
it('creates event for AGENT role', () => {
const event = new UserRegisteredEvent('user-2', '+84987654321', 'AGENT');
expect(event.role).toBe('AGENT');
});
it('creates event for SELLER role', () => {
const event = new UserRegisteredEvent('user-3', '+84955555555', 'SELLER');
expect(event.role).toBe('SELLER');
});
});
describe('AgentVerifiedEvent', () => {
it('creates event with correct properties', () => {
const event = new AgentVerifiedEvent('agent-1', 'user-1');
expect(event.eventName).toBe('agent.verified');
expect(event.aggregateId).toBe('agent-1');
expect(event.userId).toBe('user-1');
expect(event.occurredAt).toBeInstanceOf(Date);
});
});
});