260323:0917 fix CI : Run Tests #01
This commit is contained in:
@@ -18,6 +18,7 @@ describe('CorrespondenceController', () => {
|
||||
getReferences: jest.fn(),
|
||||
addReference: jest.fn(),
|
||||
removeReference: jest.fn(),
|
||||
findOneByUuid: jest.fn(),
|
||||
};
|
||||
|
||||
mockWorkflowService = {
|
||||
@@ -98,7 +99,11 @@ describe('CorrespondenceController', () => {
|
||||
mockResult
|
||||
);
|
||||
|
||||
const mockReq = { user: { user_id: 1 } };
|
||||
const mockReq = { user: { user_id: 1, roles: [] } };
|
||||
(mockCorrespondenceService.findOneByUuid as jest.Mock).mockResolvedValue({
|
||||
id: 1,
|
||||
uuid: 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
|
||||
});
|
||||
const result = await controller.submit(
|
||||
'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11',
|
||||
{ note: 'Test note' },
|
||||
|
||||
@@ -15,6 +15,7 @@ import { WorkflowEngineService } from '../workflow-engine/workflow-engine.servic
|
||||
import { UserService } from '../user/user.service';
|
||||
import { SearchService } from '../search/search.service';
|
||||
import { FileStorageService } from '../../common/file-storage/file-storage.service';
|
||||
import { UuidResolverService } from '../../common/services/uuid-resolver.service';
|
||||
import { UpdateCorrespondenceDto } from './dto/update-correspondence.dto';
|
||||
import { User } from '../user/entities/user.entity';
|
||||
|
||||
@@ -23,6 +24,7 @@ describe('CorrespondenceService', () => {
|
||||
let numberingService: DocumentNumberingService;
|
||||
let correspondenceRepo: Repository<Correspondence>;
|
||||
let revisionRepo: Repository<CorrespondenceRevision>;
|
||||
let testingModule: TestingModule;
|
||||
let _dataSource: DataSource;
|
||||
|
||||
const createMockRepository = () => ({
|
||||
@@ -60,10 +62,13 @@ describe('CorrespondenceService', () => {
|
||||
},
|
||||
})),
|
||||
getRepository: jest.fn(() => createMockRepository()),
|
||||
manager: {
|
||||
findOne: jest.fn(),
|
||||
},
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
testingModule = await Test.createTestingModule({
|
||||
providers: [
|
||||
CorrespondenceService,
|
||||
{
|
||||
@@ -129,20 +134,27 @@ describe('CorrespondenceService', () => {
|
||||
provide: FileStorageService,
|
||||
useValue: { commit: jest.fn().mockResolvedValue([]) },
|
||||
},
|
||||
{
|
||||
provide: UuidResolverService,
|
||||
useValue: {
|
||||
resolveProjectId: jest.fn().mockResolvedValue(1),
|
||||
resolveOrganizationId: jest.fn().mockResolvedValue(1),
|
||||
},
|
||||
},
|
||||
],
|
||||
}).compile();
|
||||
|
||||
service = module.get<CorrespondenceService>(CorrespondenceService);
|
||||
numberingService = module.get<DocumentNumberingService>(
|
||||
service = testingModule.get<CorrespondenceService>(CorrespondenceService);
|
||||
numberingService = testingModule.get<DocumentNumberingService>(
|
||||
DocumentNumberingService
|
||||
);
|
||||
correspondenceRepo = module.get<Repository<Correspondence>>(
|
||||
correspondenceRepo = testingModule.get<Repository<Correspondence>>(
|
||||
getRepositoryToken(Correspondence)
|
||||
);
|
||||
revisionRepo = module.get<Repository<CorrespondenceRevision>>(
|
||||
revisionRepo = testingModule.get<Repository<CorrespondenceRevision>>(
|
||||
getRepositoryToken(CorrespondenceRevision)
|
||||
);
|
||||
_dataSource = module.get<DataSource>(DataSource);
|
||||
_dataSource = testingModule.get<DataSource>(DataSource);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
@@ -217,6 +229,10 @@ describe('CorrespondenceService', () => {
|
||||
projectId: 2,
|
||||
};
|
||||
|
||||
const uuidResolver =
|
||||
testingModule.get<UuidResolverService>(UuidResolverService);
|
||||
(uuidResolver.resolveProjectId as jest.Mock).mockResolvedValue(2);
|
||||
|
||||
await service.update(1, updateDto, mockUser);
|
||||
|
||||
expect(
|
||||
@@ -253,6 +269,14 @@ describe('CorrespondenceService', () => {
|
||||
typeId: 999,
|
||||
};
|
||||
|
||||
const typeRepo = testingModule.get<Repository<CorrespondenceType>>(
|
||||
getRepositoryToken(CorrespondenceType)
|
||||
);
|
||||
(typeRepo.findOne as jest.Mock).mockResolvedValue({
|
||||
id: 999,
|
||||
typeCode: 'NEW-TYPE',
|
||||
});
|
||||
|
||||
await service.update(1, updateDto, mockUser);
|
||||
|
||||
expect(
|
||||
@@ -285,11 +309,8 @@ describe('CorrespondenceService', () => {
|
||||
.spyOn(correspondenceRepo, 'findOne')
|
||||
.mockResolvedValue(mockCorr as unknown as Correspondence);
|
||||
|
||||
// Access private property for mocking via casting
|
||||
const internalService = service as unknown as {
|
||||
orgRepo: Repository<Organization>;
|
||||
};
|
||||
jest.spyOn(internalService.orgRepo, 'findOne').mockResolvedValue({
|
||||
// Access DataSource manager for mocking
|
||||
mockDataSource.manager.findOne.mockResolvedValue({
|
||||
id: 88,
|
||||
organizationCode: 'NEW-ORG',
|
||||
} as unknown as Organization);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Repository, EntityManager } from 'typeorm';
|
||||
import { DocumentNumberingService } from './services/document-numbering.service';
|
||||
import { CounterService } from './services/counter.service';
|
||||
import { ReservationService } from './services/reservation.service';
|
||||
@@ -13,6 +13,7 @@ import { DocumentNumberError } from './entities/document-number-error.entity';
|
||||
import { DocumentNumberingLockService } from './services/document-numbering-lock.service';
|
||||
import { ManualOverrideService } from './services/manual-override.service';
|
||||
import { MetricsService } from './services/metrics.service';
|
||||
import { UuidResolverService } from '../../common/services/uuid-resolver.service';
|
||||
|
||||
describe('DocumentNumberingService', () => {
|
||||
let service: DocumentNumberingService;
|
||||
@@ -58,7 +59,9 @@ describe('DocumentNumberingService', () => {
|
||||
{
|
||||
provide: FormatService,
|
||||
useValue: {
|
||||
format: jest.fn().mockResolvedValue('0001'),
|
||||
format: jest
|
||||
.fn()
|
||||
.mockResolvedValue({ previewNumber: '0001', isDefault: false }),
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -98,6 +101,17 @@ describe('DocumentNumberingService', () => {
|
||||
save: jest.fn().mockResolvedValue({}),
|
||||
},
|
||||
},
|
||||
{
|
||||
provide: EntityManager,
|
||||
useValue: { transaction: jest.fn() },
|
||||
},
|
||||
{
|
||||
provide: UuidResolverService,
|
||||
useValue: {
|
||||
resolveProjectId: jest.fn().mockResolvedValue(1),
|
||||
resolveOrganizationId: jest.fn().mockResolvedValue(1),
|
||||
},
|
||||
},
|
||||
],
|
||||
}).compile();
|
||||
|
||||
@@ -117,7 +131,10 @@ describe('DocumentNumberingService', () => {
|
||||
describe('generateNextNumber', () => {
|
||||
it('should generate a new number successfully', async () => {
|
||||
(counterService.incrementCounter as jest.Mock).mockResolvedValue(1);
|
||||
(formatService.format as jest.Mock).mockResolvedValue('DOC-0001');
|
||||
(formatService.format as jest.Mock).mockResolvedValue({
|
||||
previewNumber: 'DOC-0001',
|
||||
isDefault: false,
|
||||
});
|
||||
|
||||
const result = await service.generateNextNumber(mockContext);
|
||||
|
||||
|
||||
@@ -6,6 +6,9 @@ import { CorrespondenceType } from '../correspondence/entities/correspondence-ty
|
||||
import { CorrespondenceStatus } from '../correspondence/entities/correspondence-status.entity';
|
||||
import { Project } from '../project/entities/project.entity';
|
||||
import { DataSource } from 'typeorm';
|
||||
import { MigrationReviewQueue } from './entities/migration-review-queue.entity';
|
||||
import { MigrationError } from './entities/migration-error.entity';
|
||||
import { FileStorageService } from '../../common/file-storage/file-storage.service';
|
||||
|
||||
describe('MigrationService', () => {
|
||||
let service: MigrationService;
|
||||
@@ -71,6 +74,18 @@ describe('MigrationService', () => {
|
||||
provide: DataSource,
|
||||
useValue: mockDataSource,
|
||||
},
|
||||
{
|
||||
provide: getRepositoryToken(MigrationReviewQueue),
|
||||
useValue: { findOne: jest.fn(), create: jest.fn(), save: jest.fn() },
|
||||
},
|
||||
{
|
||||
provide: getRepositoryToken(MigrationError),
|
||||
useValue: { create: jest.fn(), save: jest.fn() },
|
||||
},
|
||||
{
|
||||
provide: FileStorageService,
|
||||
useValue: { importStagingFile: jest.fn() },
|
||||
},
|
||||
],
|
||||
}).compile();
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import { UserService } from './user.service';
|
||||
import { User } from './entities/user.entity';
|
||||
import { Role } from './entities/role.entity';
|
||||
import { Permission } from './entities/permission.entity';
|
||||
import { UuidResolverService } from '../../common/services/uuid-resolver.service';
|
||||
|
||||
// Mock Repository
|
||||
const mockUserRepository = {
|
||||
@@ -56,6 +57,13 @@ describe('UserService', () => {
|
||||
provide: getRepositoryToken(Permission),
|
||||
useValue: mockUserRepository, // Reuse generic mock
|
||||
},
|
||||
{
|
||||
provide: UuidResolverService,
|
||||
useValue: {
|
||||
resolveOrganizationId: jest.fn().mockResolvedValue(1),
|
||||
resolveProjectId: jest.fn().mockResolvedValue(1),
|
||||
},
|
||||
},
|
||||
],
|
||||
}).compile();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user