refactor(exam): drop the last trace of "Eligible to Register"

The label was reverted to "Exam Paid" but the name survived as the internal
stage key, so the concept was still in the codebase to be reintroduced by
accident. The stage is named after the status it derives from now.
This commit is contained in:
mihretue
2026-09-01 07:33:00 +00:00
parent 3b5bdfb6d1
commit 09a6f492de
5 changed files with 11 additions and 9 deletions

View File

@@ -114,7 +114,7 @@ const STATUS_COLOR: Record<string, string> = {
* keys because this page states its statuses the same way.
*/
const EXAM_STAGE_LABELS: Record<string, string> = {
ELIGIBLE_TO_REGISTER: 'Eligible — Register for a Sitting',
EXAM_PAID: 'Exam Paid',
REGISTERED: 'Exam Scheduled',
ATTENDANCE_CONFIRMED: 'Exam Attendance Confirmed',
SITTING: 'Exam In Progress',

View File

@@ -29,8 +29,8 @@ describe('examStageFor', () => {
expect(examStageFor({ status: 'CERTIFICATE_ISSUED' })).toBeNull();
});
it('reads a paid application as eligible to register, not as waiting', () => {
expect(examStageFor({ status: 'EXAM_PAID' })).toBe('ELIGIBLE_TO_REGISTER');
it('reads a paid application as Exam Paid, not as awaiting a date', () => {
expect(examStageFor({ status: 'EXAM_PAID' })).toBe('EXAM_PAID');
});
it('reports a registration whose attendance has not been taken', () => {

View File

@@ -16,7 +16,7 @@ import type { MyRegistration } from '../exams/pages/ExamsPage';
* already recorded — this only names what the records add up to.
*/
export type ExamStage =
| 'ELIGIBLE_TO_REGISTER'
| 'EXAM_PAID'
| 'REGISTERED'
| 'ATTENDANCE_CONFIRMED'
| 'SITTING'
@@ -41,9 +41,11 @@ export function examStageFor(
if (app.status === 'EXAM_PASSED') return 'PASSED';
if (app.status === 'EXAM_FAILED') return 'FAILED';
// EXAM_PAID is "prerequisites done, sitting not yet chosen": the fee has
// cleared and nothing is left but for the candidate to pick a session.
if (app.status === 'EXAM_PAID') return 'ELIGIBLE_TO_REGISTER';
// The fee has cleared and nothing is left but for the candidate to pick a
// session. Named after the status rather than after what the candidate
// should do next: "Eligible to Register" read as a status of its own and
// said less than the plain one.
if (app.status === 'EXAM_PAID') return 'EXAM_PAID';
if (app.status !== 'EXAM_SCHEDULED') return null;

View File

@@ -244,7 +244,7 @@ export const am: Translations = {
empty: 'እስካሁን ምንም ፍቃድ አልተሰጥዎትም። ማመልከቻ ከተፈቀደና ከተከፈለ በኋላ እዚህ ይታያል።',
},
examStage: {
ELIGIBLE_TO_REGISTER: "ብቁ ነዎት — ለፈተና ይመዝገቡ",
EXAM_PAID: "የፈተና ክፍያ ተከፍሏል",
REGISTERED: "የፈተና ቀን፦ {{date}}",
ATTENDANCE_CONFIRMED: "መገኘት ተረጋግጧል",
SITTING: "ፈተና በመካሄድ ላይ",

View File

@@ -249,7 +249,7 @@ export const en = {
* from the application status alone — see exam-stage.ts.
*/
examStage: {
ELIGIBLE_TO_REGISTER: 'Eligible — register for a sitting',
EXAM_PAID: 'Exam Paid',
REGISTERED: 'Exam scheduled: {{date}}',
ATTENDANCE_CONFIRMED: 'Attendance confirmed',
SITTING: 'Exam in progress',