48 lines
1.9 KiB
TypeScript
48 lines
1.9 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import {
|
|
getResignationStatusForStage,
|
|
getTerminationStatusForStage,
|
|
normalizeClearanceStatus,
|
|
normalizeFnFStatus,
|
|
normalizeTerminationCurrentStage,
|
|
getLegacyTerminationRowFixes
|
|
} from '../src/common/utils/offboardingStatus.js';
|
|
import { getJointRoundCutoffMsFromTimeline } from '../src/common/utils/terminationJointReviewRound.util.js';
|
|
|
|
assert.equal(normalizeFnFStatus('settled'), 'Completed');
|
|
assert.equal(normalizeFnFStatus('finance approval'), 'Finance Approval');
|
|
|
|
assert.equal(getResignationStatusForStage('ASM'), 'ASM Review');
|
|
assert.equal(getResignationStatusForStage('F&F Initiated'), 'F&F Initiated');
|
|
|
|
assert.equal(getTerminationStatusForStage('Submitted'), 'Submitted');
|
|
assert.equal(getTerminationStatusForStage('Terminated'), 'Terminated');
|
|
|
|
assert.equal(
|
|
normalizeTerminationCurrentStage('Personal Hearing'),
|
|
'Evaluation of Dealer SCN Response'
|
|
);
|
|
assert.deepEqual(getLegacyTerminationRowFixes({ currentStage: 'Personal Hearing', status: 'Personal Hearing Pending' }), {
|
|
currentStage: 'Evaluation of Dealer SCN Response',
|
|
status: 'SCN Response Evaluation Pending'
|
|
});
|
|
|
|
const reconsiderTimeline = [
|
|
{ action: 'Approved', targetStage: 'NBH Final Approval', timestamp: new Date('2024-01-01').toISOString() },
|
|
{
|
|
action: 'Sent for Reconsideration',
|
|
targetStage: 'Evaluation of Dealer SCN Response',
|
|
timestamp: new Date('2025-06-15T12:00:00.000Z').toISOString()
|
|
}
|
|
];
|
|
assert.equal(
|
|
getJointRoundCutoffMsFromTimeline(reconsiderTimeline, 'scn_response_eval'),
|
|
new Date('2025-06-15T12:00:00.000Z').getTime()
|
|
);
|
|
|
|
assert.equal(normalizeClearanceStatus('Cleared', 0), 'NOC Submitted');
|
|
assert.equal(normalizeClearanceStatus('Cleared', 100), 'Dues Pending');
|
|
assert.equal(normalizeClearanceStatus('Pending', 0), 'Pending');
|
|
|
|
console.log('Offboarding status normalization checks passed.');
|