ATS-MBR-STR-016Interpret membership status and continuity by date: Acceptance Test Set
MarkdownInterpret membership status and continuity by date: Acceptance Test Set
Coverage
Test Scenarios
9 scenarios proving CAP-MBR-STR-016; 9 bound to an existing test.
01 Competing status conditions use precedenceunittest
- Proves
BR-CAP-MBR-STR-016-01 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Evaluate suspension during grace, a covering renewal, grace before a future term and future alongside pending.
- Expected
- Each result selects the applicable higher-priority standing.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/status.spec.ts#holding status: the precedence of §2 › puts suspended over grace
02 Only effective states contribute coverageunittest
- Proves
BR-CAP-MBR-STR-016-02 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Evaluate pending, cancelled and terminated periods over their dates.
- Expected
- Pending and cancelled periods supply no effective coverage; terminated periods retain their covered days.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/status.spec.ts#holding status: the effective states of §1 › never lets a pending term cover a date
03 Grace boundaries use the deciding classificationunittest
- Proves
BR-CAP-MBR-STR-016-03 AS-JNY-MBR-STR-005-01 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Evaluate the last grace day, its successor and a type-specific override.
- Expected
- The boundary returns grace, its successor returns lapse and the override supplies the allowance.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/status.spec.ts#holding status: the rows of §2 › is in grace on the last day of grace (D = E + grace_days)
04 Covering periods can omit benefitsunittest
- Proves
BR-CAP-MBR-STR-016-04 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Evaluate a holding with an effective no-benefit classification.
- Expected
- The result is active without benefits.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/status.spec.ts#holding status: the rows of §2 › is active without benefits when the covering term’s classification confers none
05 Continuity breaks beyond the allowed gapunittest
- Proves
BR-CAP-MBR-STR-016-05 AS-JNY-MBR-STR-005-03 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Compare effective periods separated by the allowance and by one additional day.
- Expected
- The allowed gap stays within an episode and the larger gap begins a new episode.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/status.spec.ts#continuity episodes: §8 › keeps the run when the gap equals the allowance (starts_on = ends_on + gap + 1)
06 Join-date selection ignores ineffective periodsunittest
- Proves
BR-CAP-MBR-STR-016-06 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Calculate the first join decision with pending, cancelled and effective terms, then add a later effective term.
- Expected
- The earliest effective start remains the computed join date.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/holding-cache.spec.ts#the holding cache › takes the join date from the first effective term, a pending or cancelled one never
07 Sweep planning detects missing prior workunittest
- Proves
BR-CAP-MBR-STR-016-07 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Compare a previous-day sweep, a missed night and no previous sweep.
- Expected
- Normal work selects boundaries and the other cases request full recomputation.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/sweep.spec.ts#the sweep’s boundaries › looks at the terms starting on D
08 Sweep detections distinguish boundaries and suppressionunittest
- Proves
BR-CAP-MBR-STR-016-08 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Evaluate expiry, the last grace day, the first lapsed day and suspension.
- Expected
- Expiry is detectable after ending, lapse begins after grace, and suspension suppresses detections.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/sweep.spec.ts#the sweep’s detections › detects the expiry the day after the end, effective that day
09 Column declarations constrain dates and vocabularyunitnegativetest
- Proves
BR-CAP-MBR-STR-016-11 - Preconditions
- Explicit inputs or a recording fixture represent the cases exercised below.
- Steps
- Inspect generated term and holding columns and their check expressions.
- Expected
- The declarations restrict date order, term states and cached status values.
- Data
- Literal term, state or declaration fixtures for the described cases.
- Bound to
- Source
- services-membership:modules/terms/tests/unit/columns.spec.ts#term columns (§3.2) › order the dates: an end, when there is one, on or after the start