57 lines
3.3 KiB
TypeScript
57 lines
3.3 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import {
|
|
validateOffboardingAction,
|
|
getPreviousStage,
|
|
getOffboardingAuditAction
|
|
} from '../src/common/utils/offboardingWorkflow.utils.js';
|
|
import {
|
|
OFFBOARDING_ACTIONS,
|
|
REQUEST_TYPES,
|
|
TERMINATION_STAGES,
|
|
RESIGNATION_STAGES,
|
|
CONSTITUTIONAL_STAGES,
|
|
AUDIT_ACTIONS
|
|
} from '../src/common/config/constants.js';
|
|
|
|
console.log('--- Testing Standardized Offboarding Utilities ---');
|
|
|
|
// 1. Test validateOffboardingAction
|
|
console.log('Testing validateOffboardingAction...');
|
|
assert.deepEqual(validateOffboardingAction(OFFBOARDING_ACTIONS.APPROVE, ''), { valid: true });
|
|
assert.deepEqual(validateOffboardingAction(OFFBOARDING_ACTIONS.SEND_BACK, 'Short'), { valid: true }); // 'Short' is 5 chars
|
|
assert.equal(validateOffboardingAction(OFFBOARDING_ACTIONS.SEND_BACK, 'No').valid, false);
|
|
assert.equal(validateOffboardingAction(OFFBOARDING_ACTIONS.REVOKE, '').valid, false);
|
|
assert.equal(validateOffboardingAction(OFFBOARDING_ACTIONS.REJECT, '').valid, true); // Remarks not mandatory for reject in current util choice
|
|
console.log('✓ validateOffboardingAction passed.');
|
|
|
|
// 2. Test getPreviousStage - Termination
|
|
console.log('Testing getPreviousStage (Termination)...');
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.TERMINATION, TERMINATION_STAGES.RBM_REVIEW), TERMINATION_STAGES.SUBMITTED);
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.TERMINATION, TERMINATION_STAGES.ZBH_REVIEW), TERMINATION_STAGES.RBM_REVIEW);
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.TERMINATION, TERMINATION_STAGES.TERMINATED), TERMINATION_STAGES.LEGAL_LETTER);
|
|
console.log('✓ Termination stage resolution passed.');
|
|
|
|
// 3. Test getPreviousStage - Resignation
|
|
console.log('Testing getPreviousStage (Resignation)...');
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.RESIGNATION, RESIGNATION_STAGES.RBM), RESIGNATION_STAGES.ASM);
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.RESIGNATION, RESIGNATION_STAGES.ZBH), RESIGNATION_STAGES.RBM);
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.RESIGNATION, RESIGNATION_STAGES.COMPLETED), RESIGNATION_STAGES.FNF_INITIATED);
|
|
console.log('✓ Resignation stage resolution passed.');
|
|
|
|
// 4. Test getPreviousStage - Constitutional
|
|
console.log('Testing getPreviousStage (Constitutional)...');
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.CONSTITUTIONAL, CONSTITUTIONAL_STAGES.ASM_REVIEW), CONSTITUTIONAL_STAGES.SUBMITTED);
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.CONSTITUTIONAL, CONSTITUTIONAL_STAGES.ZM_RBM_REVIEW), CONSTITUTIONAL_STAGES.ASM_REVIEW);
|
|
assert.equal(getPreviousStage(REQUEST_TYPES.CONSTITUTIONAL, CONSTITUTIONAL_STAGES.COMPLETED), CONSTITUTIONAL_STAGES.LEGAL_REVIEW);
|
|
console.log('✓ Constitutional stage resolution passed.');
|
|
|
|
// 5. Test getOffboardingAuditAction mapping
|
|
console.log('Testing getOffboardingAuditAction...');
|
|
assert.equal(getOffboardingAuditAction('Sent Back', REQUEST_TYPES.TERMINATION), AUDIT_ACTIONS.UPDATED);
|
|
assert.equal(getOffboardingAuditAction('Revoke', REQUEST_TYPES.RESIGNATION), AUDIT_ACTIONS.UPDATED);
|
|
assert.equal(getOffboardingAuditAction('Approve', REQUEST_TYPES.CONSTITUTIONAL), AUDIT_ACTIONS.APPROVED);
|
|
assert.equal(getOffboardingAuditAction('REJECT', REQUEST_TYPES.TERMINATION), AUDIT_ACTIONS.REJECTED);
|
|
console.log('✓ Audit action mapping passed.');
|
|
|
|
console.log('\nALL STANDARDIZATION UTILITY CHECKS PASSED SUCCESSFULLY.');
|