251209:1453 Frontend: progress nest = UAT & Bug Fixing
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled

This commit is contained in:
admin
2025-12-09 14:53:42 +07:00
parent 8aceced902
commit aa96cd90e3
125 changed files with 11052 additions and 785 deletions
@@ -1,12 +1,111 @@
import { Test, TestingModule } from '@nestjs/testing';
import { getRepositoryToken } from '@nestjs/typeorm';
import { DataSource } from 'typeorm';
import { CorrespondenceService } from './correspondence.service';
import { Correspondence } from './entities/correspondence.entity';
import { CorrespondenceRevision } from './entities/correspondence-revision.entity';
import { CorrespondenceType } from './entities/correspondence-type.entity';
import { CorrespondenceStatus } from './entities/correspondence-status.entity';
import { RoutingTemplate } from './entities/routing-template.entity';
import { CorrespondenceRouting } from './entities/correspondence-routing.entity';
import { CorrespondenceReference } from './entities/correspondence-reference.entity';
import { DocumentNumberingService } from '../document-numbering/document-numbering.service';
import { JsonSchemaService } from '../json-schema/json-schema.service';
import { WorkflowEngineService } from '../workflow-engine/workflow-engine.service';
import { UserService } from '../user/user.service';
import { SearchService } from '../search/search.service';
describe('CorrespondenceService', () => {
let service: CorrespondenceService;
const createMockRepository = () => ({
find: jest.fn(),
findOne: jest.fn(),
create: jest.fn(),
save: jest.fn(),
softDelete: jest.fn(),
createQueryBuilder: jest.fn(() => ({
leftJoinAndSelect: jest.fn().mockReturnThis(),
where: jest.fn().mockReturnThis(),
andWhere: jest.fn().mockReturnThis(),
orderBy: jest.fn().mockReturnThis(),
skip: jest.fn().mockReturnThis(),
take: jest.fn().mockReturnThis(),
getOne: jest.fn().mockResolvedValue(null),
getMany: jest.fn().mockResolvedValue([]),
getManyAndCount: jest.fn().mockResolvedValue([[], 0]),
})),
});
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [CorrespondenceService],
providers: [
CorrespondenceService,
{
provide: getRepositoryToken(Correspondence),
useValue: createMockRepository(),
},
{
provide: getRepositoryToken(CorrespondenceRevision),
useValue: createMockRepository(),
},
{
provide: getRepositoryToken(CorrespondenceType),
useValue: createMockRepository(),
},
{
provide: getRepositoryToken(CorrespondenceStatus),
useValue: createMockRepository(),
},
{
provide: getRepositoryToken(RoutingTemplate),
useValue: createMockRepository(),
},
{
provide: getRepositoryToken(CorrespondenceRouting),
useValue: createMockRepository(),
},
{
provide: getRepositoryToken(CorrespondenceReference),
useValue: createMockRepository(),
},
{
provide: DocumentNumberingService,
useValue: { generateNextNumber: jest.fn() },
},
{
provide: JsonSchemaService,
useValue: { validate: jest.fn() },
},
{
provide: WorkflowEngineService,
useValue: { startWorkflow: jest.fn(), processAction: jest.fn() },
},
{
provide: UserService,
useValue: { findOne: jest.fn() },
},
{
provide: DataSource,
useValue: {
createQueryRunner: jest.fn(() => ({
connect: jest.fn(),
startTransaction: jest.fn(),
commitTransaction: jest.fn(),
rollbackTransaction: jest.fn(),
release: jest.fn(),
manager: {
save: jest.fn(),
findOne: jest.fn(),
},
})),
},
},
{
provide: SearchService,
useValue: { indexDocument: jest.fn() },
},
],
}).compile();
service = module.get<CorrespondenceService>(CorrespondenceService);
@@ -15,4 +114,12 @@ describe('CorrespondenceService', () => {
it('should be defined', () => {
expect(service).toBeDefined();
});
describe('findAll', () => {
it('should return paginated correspondences', async () => {
const result = await service.findAll({ projectId: 1 });
expect(result.data).toBeDefined();
expect(result.meta).toBeDefined();
});
});
});