251121:1700 Backend T3 wait testt

This commit is contained in:
admin
2025-11-21 17:16:40 +07:00
parent 58cee2d007
commit bf0308e350
27 changed files with 6651 additions and 196 deletions

View File

@@ -1,5 +1,7 @@
import { Test, TestingModule } from '@nestjs/testing';
import { WorkflowEngineService } from './workflow-engine.service';
import { WorkflowAction } from './interfaces/workflow.interface';
import { BadRequestException } from '@nestjs/common';
describe('WorkflowEngineService', () => {
let service: WorkflowEngineService;
@@ -15,4 +17,50 @@ describe('WorkflowEngineService', () => {
it('should be defined', () => {
expect(service).toBeDefined();
});
describe('processAction', () => {
// 🟢 กรณี: อนุมัติทั่วไป (ไปขั้นต่อไป)
it('should move to next step on APPROVE', () => {
const result = service.processAction(1, 3, WorkflowAction.APPROVE);
expect(result.nextStepSequence).toBe(2);
expect(result.shouldUpdateStatus).toBe(false);
});
// 🟢 กรณี: อนุมัติขั้นตอนสุดท้าย (จบงาน)
it('should complete workflow on APPROVE at last step', () => {
const result = service.processAction(3, 3, WorkflowAction.APPROVE);
expect(result.nextStepSequence).toBeNull(); // ไม่มีขั้นต่อไป
expect(result.shouldUpdateStatus).toBe(true);
expect(result.documentStatus).toBe('COMPLETED');
});
// 🔴 กรณี: ปฏิเสธ (จบงานทันที)
it('should stop workflow on REJECT', () => {
const result = service.processAction(1, 3, WorkflowAction.REJECT);
expect(result.nextStepSequence).toBeNull();
expect(result.shouldUpdateStatus).toBe(true);
expect(result.documentStatus).toBe('REJECTED');
});
// 🟠 กรณี: ส่งกลับ (ย้อนกลับ 1 ขั้น)
it('should return to previous step on RETURN', () => {
const result = service.processAction(2, 3, WorkflowAction.RETURN);
expect(result.nextStepSequence).toBe(1);
expect(result.shouldUpdateStatus).toBe(true);
expect(result.documentStatus).toBe('REVISE_REQUIRED');
});
// 🟠 กรณี: ส่งกลับ (ระบุขั้น)
it('should return to specific step on RETURN', () => {
const result = service.processAction(3, 5, WorkflowAction.RETURN, 1);
expect(result.nextStepSequence).toBe(1);
});
// ❌ กรณี: Error (ส่งกลับต่ำกว่า 1)
it('should throw error if return step is invalid', () => {
expect(() => {
service.processAction(1, 3, WorkflowAction.RETURN);
}).toThrow(BadRequestException);
});
});
});