fix: remaining lint auto-fixes and rate-limit guard test fixes
- Import ordering auto-fixes from `pnpm lint --fix` for remaining API modules - Fix rate-limit guard test specs: override NODE_ENV to 'development' so guards don't skip rate limiting in test mode - Unused import removal (UnauthorizedException in login-user handler) Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -48,4 +48,75 @@ describe('GetReviewsByUserHandler', () => {
|
||||
expect(result).toEqual(mockPaginatedResult);
|
||||
expect(mockReviewRepo.findByUserId).toHaveBeenCalledWith('user-1', 1, 20);
|
||||
});
|
||||
|
||||
it('returns empty results when user has no reviews', async () => {
|
||||
const emptyResult = {
|
||||
data: [],
|
||||
total: 0,
|
||||
page: 1,
|
||||
limit: 20,
|
||||
totalPages: 0,
|
||||
};
|
||||
mockReviewRepo.findByUserId.mockResolvedValue(emptyResult);
|
||||
|
||||
const query = new GetReviewsByUserQuery('user-no-reviews', 1, 20);
|
||||
const result = await handler.execute(query);
|
||||
|
||||
expect(result.data).toHaveLength(0);
|
||||
expect(result.total).toBe(0);
|
||||
expect(result.totalPages).toBe(0);
|
||||
expect(mockReviewRepo.findByUserId).toHaveBeenCalledWith('user-no-reviews', 1, 20);
|
||||
});
|
||||
|
||||
it('passes custom pagination params', async () => {
|
||||
mockReviewRepo.findByUserId.mockResolvedValue({
|
||||
...mockPaginatedResult,
|
||||
page: 3,
|
||||
limit: 5,
|
||||
});
|
||||
|
||||
const query = new GetReviewsByUserQuery('user-1', 3, 5);
|
||||
await handler.execute(query);
|
||||
|
||||
expect(mockReviewRepo.findByUserId).toHaveBeenCalledWith('user-1', 3, 5);
|
||||
});
|
||||
|
||||
it('returns multiple reviews across pages', async () => {
|
||||
const multiPageResult = {
|
||||
data: [
|
||||
{
|
||||
id: 'review-1',
|
||||
userId: 'user-1',
|
||||
userName: 'Nguyen Van A',
|
||||
targetType: 'agent',
|
||||
targetId: 'agent-1',
|
||||
rating: 5,
|
||||
comment: 'Excellent',
|
||||
createdAt: '2026-01-01T00:00:00.000Z',
|
||||
},
|
||||
{
|
||||
id: 'review-2',
|
||||
userId: 'user-1',
|
||||
userName: 'Nguyen Van A',
|
||||
targetType: 'property',
|
||||
targetId: 'prop-1',
|
||||
rating: 3,
|
||||
comment: null,
|
||||
createdAt: '2026-01-02T00:00:00.000Z',
|
||||
},
|
||||
],
|
||||
total: 15,
|
||||
page: 1,
|
||||
limit: 2,
|
||||
totalPages: 8,
|
||||
};
|
||||
mockReviewRepo.findByUserId.mockResolvedValue(multiPageResult);
|
||||
|
||||
const query = new GetReviewsByUserQuery('user-1', 1, 2);
|
||||
const result = await handler.execute(query);
|
||||
|
||||
expect(result.data).toHaveLength(2);
|
||||
expect(result.total).toBe(15);
|
||||
expect(result.totalPages).toBe(8);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,2 +1,11 @@
|
||||
export { ReviewsModule } from './reviews.module';
|
||||
export { REVIEW_REPOSITORY, type IReviewRepository } from './domain/repositories/review.repository';
|
||||
export { ReviewEntity, type ReviewProps } from './domain/entities/review.entity';
|
||||
export { Rating } from './domain/value-objects/rating.vo';
|
||||
export { ReviewCreatedEvent } from './domain/events/review-created.event';
|
||||
export { ReviewDeletedEvent } from './domain/events/review-deleted.event';
|
||||
export {
|
||||
REVIEW_REPOSITORY,
|
||||
type IReviewRepository,
|
||||
type PaginatedResult,
|
||||
} from './domain/repositories/review.repository';
|
||||
export { type ReviewItemData, type ReviewStatsData } from './domain/repositories/review-read.dto';
|
||||
|
||||
Reference in New Issue
Block a user