---
id: TST-MBR-STR-002
title: Affiliation requirements and dated unit visibility
kind: integration
product_area: membership
module: structure
revision: 1
status: draft
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repository: services-membership
files:
  - modules/memberships/tests/integration/services/affiliations.integration.spec.ts
implements:
  - ATS-MBR-STR-010-04
  - ATS-MBR-STR-013-05
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 3
isolation: A uniquely named local workspace and its seeded records; the suite owns its fixture data and cleanup.
evidence:
  - 'services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts'
bindings:
  - scenario: ATS-MBR-STR-010-04
    source: >-
      services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts#the
      term affiliations in the database › refuses to drop a unit type from the program while an
      affiliation uses it (unit_type_in_use)
    provenance: test
  - scenario: ATS-MBR-STR-013-05
    source: >-
      services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts#the
      term affiliations in the database › refuses a Regular term with no chapter: the package needs one
      (unit_minimum)
    provenance: test
  - scenario: ATS-MBR-STR-013-05
    source: >-
      services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts#the
      term affiliations in the database › refuses a second chapter on a Student term: the package allows
      one (unit_maximum)
    provenance: test
invocation: 'npm run test:integration'
coverage_limit: >-
  Bindings identify the concrete cases executed in this file. A compound specification may also depend on
  other registered suites or remain partly proposed; registration is not a passing execution result.
provenance: test
source:
  - 'services-membership:modules/memberships/tests/integration/services/affiliations.integration.spec.ts'
---

# Affiliation requirements and dated unit visibility

## Verification Boundary

This suite invokes the local implementation against the prepared database and checks its persisted results. Affiliation requirements and dated unit visibility defines the scope of its examples.

## What This Suite Proves

The suite executes the concrete examples named by its binding ledger. Those examples contribute to the linked capability or feature scenarios within the boundary of the test assertions.

## What It Does Not Prove

Registration supplies no fresh execution result or deployed conformance verdict. Browser behavior, deployed infrastructure and unasserted variants require separate evidence.

## Real Dependencies and Test Doubles

PostgreSQL, local Membership services and the suite’s persistence path are real. The business clock and caller fixtures are controlled by the harness.

## Must Not Be Doubled

The Membership path under examination, transaction behavior and database constraints stay real. Replacing those boundaries would remove the persisted proof the suite is intended to supply.
