---
id: FAS-MBR-STR-05
title: 'Terms and Standing: Feature Acceptance Suite'
feature: FEAT-MBR-STR-05
product_area: membership
module: structure
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-MBR-STR-015
  - CAP-MBR-STR-016
  - CAP-MBR-STR-017
scenarios:
  - id: FAS-MBR-STR-05-01
    title: Compute a membership period and interpret its standing
    kind: behaviour
    exercises:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
    relies_on:
      - ATS-MBR-STR-015-03
      - ATS-MBR-STR-016-03
      - ATS-MBR-STR-016-05
    preconditions: 'A dated anniversary offering, classification grace and continuity allowances are supplied.'
    steps:
      - do: >-
          Compute the period, evaluate first and last coverage days and the grace boundary, then evaluate
          a later continuation.
        expect: >-
          The dated outputs and standing decisions agree at each supplied date, with continuity decided
          from the effective periods.
        provenance: proposed
        source:
          - CAP-MBR-STR-015
          - CAP-MBR-STR-016
    expected: >-
      The dated outputs and standing decisions agree at each supplied date, with continuity decided from
      the effective periods.
    negative: false
    data_needs: >-
      Dedicated workspace fixtures, current record versions and distinct callers for the accepted and
      refused actions.
    bound_to: []
    provenance: proposed
    source:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
  - id: FAS-MBR-STR-05-02
    title: An unsuitable reason preserves the original period
    kind: interaction
    exercises:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
      - CAP-MBR-STR-017
    relies_on:
      - ATS-MBR-STR-017-02
      - ATS-MBR-STR-016-02
    preconditions: A committed term covers today and the catalogue contains a suspension-only reason.
    steps:
      - do: >-
          Attempt termination using the unsuitable reason and recompute dates and standing from the
          retained term.
        expect: The action fails; its unchanged period keeps the original standing and continuity inputs.
        provenance: proposed
        source:
          - CAP-MBR-STR-015
          - CAP-MBR-STR-016
          - CAP-MBR-STR-017
    expected: The action fails; its unchanged period keeps the original standing and continuity inputs.
    negative: false
    data_needs: >-
      Dedicated workspace fixtures, current record versions and distinct callers for the accepted and
      refused actions.
    bound_to: []
    provenance: proposed
    source:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
      - CAP-MBR-STR-017
  - id: FAS-MBR-STR-05-03
    title: 'Expiry, explained closure and late rejoin retain original joining'
    kind: lifecycle
    exercises:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
      - CAP-MBR-STR-017
    relies_on:
      - ATS-MBR-STR-015-04
      - ATS-MBR-STR-016-03
      - ATS-MBR-STR-016-05
      - ATS-MBR-STR-016-06
    preconditions: >-
      An ended term has 60 days of grace and a termination reason; the later rejoin is outside
      reinstatement.
    steps:
      - do: >-
          Inspect grace and lapse, terminate the expired term with its reason, add the later staff term
          and inspect episodes and joining information.
        expect: >-
          The expired dates stay intact, the rejoin starts a fresh anniversary period and continuity has
          two episodes while original joining remains.
        provenance: test
        source:
          - >-
            services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and
            rejoin through a staff term
    expected: >-
      The expired dates stay intact, the rejoin starts a fresh anniversary period and continuity has two
      episodes while original joining remains.
    negative: false
    data_needs: >-
      Dedicated workspace fixtures, current record versions and distinct callers for the accepted and
      refused actions.
    bound_to:
      - TST-MBR-STR-097
    provenance: test
    source:
      - >-
        services-membership:tests/e2e/s04-lapse-and-rejoin.e2e.spec.ts#scenario 4: lapse, drop and rejoin
        through a staff term
  - id: FAS-MBR-STR-05-04
    title: Date decisions respect their calling boundary
    kind: permission
    exercises:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
      - CAP-MBR-STR-017
    relies_on:
      - ATS-MBR-STR-019-02
      - ATS-MBR-STR-019-04
      - ATS-MBR-STR-017-02
    preconditions: Configuration management and application-access contexts are prepared with valid reason fixtures.
    steps:
      - do: >-
          Attempt a package date-rule edit and reason edit with a reader, then compare admitted and
          unlicensed application health requests.
        expect: >-
          Setup changes need management and application admission fails before access to workspace
          operations.
        provenance: proposed
        source:
          - CAP-MBR-STR-015
          - CAP-MBR-STR-016
          - CAP-MBR-STR-017
    expected: >-
      Setup changes need management and application admission fails before access to workspace
      operations.
    negative: true
    data_needs: >-
      Dedicated workspace fixtures, current record versions and distinct callers for the accepted and
      refused actions.
    bound_to: []
    provenance: proposed
    source:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
      - CAP-MBR-STR-017
  - id: FAS-MBR-STR-05-05
    title: Live zero grace and leap-day calculation stay compatible
    kind: regression
    exercises:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
    relies_on:
      - ATS-MBR-STR-015-08
      - ATS-MBR-STR-016-03
    preconditions: A calendar rule ends in February of a leap year and the type overrides grace with zero.
    steps:
      - do: >-
          Calculate the period, evaluate its last day and the next day, then clear the override and
          evaluate with program grace.
        expect: >-
          The calculated end uses leap day; the next day lapses under zero grace and uses program grace
          after the override is cleared.
        provenance: proposed
        source:
          - CAP-MBR-STR-015
          - CAP-MBR-STR-016
    expected: >-
      The calculated end uses leap day; the next day lapses under zero grace and uses program grace after
      the override is cleared.
    negative: true
    data_needs: >-
      Dedicated workspace fixtures, current record versions and distinct callers for the accepted and
      refused actions.
    bound_to: []
    provenance: proposed
    source:
      - CAP-MBR-STR-015
      - CAP-MBR-STR-016
evidence:
  - CAP-MBR-STR-015
  - CAP-MBR-STR-016
  - CAP-MBR-STR-015
  - CAP-MBR-STR-016
  - CAP-MBR-STR-017
  - CAP-MBR-STR-015
  - CAP-MBR-STR-016
  - CAP-MBR-STR-017
  - CAP-MBR-STR-015
  - CAP-MBR-STR-016
  - CAP-MBR-STR-017
  - CAP-MBR-STR-015
  - CAP-MBR-STR-016
regression_record:
  - revision: 1
    change: initial
    scenarios:
      - FAS-MBR-STR-05-01
      - FAS-MBR-STR-05-02
      - FAS-MBR-STR-05-03
      - FAS-MBR-STR-05-04
      - FAS-MBR-STR-05-05
    reason: Initial cumulative feature coverage from the landed planning and design contracts.
    provenance: documented
    source: specs/CONVENTIONS.md#5.3 Feature Acceptance Suite (FAS)
narrative_sources:
  - section: What the Feature Must Do as a Whole
    provenance: proposed
    source: FEAT-MBR-STR-05
  - section: Interactions Between Capabilities
    provenance: proposed
    source:
      - FAS-MBR-STR-05-02
  - section: Regression Record
    provenance: documented
    source: specs/CONVENTIONS.md#5.3 Feature Acceptance Suite (FAS)
---

# Terms and Standing: Feature Acceptance Suite

## What the Feature Must Do as a Whole

The suite follows membership dates through coverage, explained closure and continuity. Each scenario combines outcomes that staff need to trust together and identifies the capability examples it relies on.

## Interactions Between Capabilities

Attempt termination using the unsuitable reason and recompute dates and standing from the retained term. The action fails; its unchanged period keeps the original standing and continuity inputs.

A complete feature run also revisits the accepted and refused outcomes when referenced configuration changes. Proposed cases require executable proof before they establish delivery qualification.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish cumulative feature coverage from the landed planning and design contracts. |
