---
id: TST-MBR-MEM-025
title: Expiry attention publication and resolution
kind: integration
product_area: membership
module: memberships
revision: 1
status: draft
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
repository: services-membership
files:
  - >-
    modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts
implements:
  - ATS-MBR-MEM-014-01
  - ATS-MBR-MEM-014-03
  - ATS-MBR-MEM-014-04
  - ATS-MBR-MEM-014-05
  - ATS-MBR-MEM-014-06
  - ATS-MBR-MEM-014-07
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 suite-owned workspace and test identifiers; suites that use shared seed data
  require the source’s serial execution and cleanup policy.
verification_notes: >-
  Bindings describe the assertions reviewed at the pinned commit; the suite is
  not executed by this documentation job.
coverage_gap: null
evidence:
  - >-
    services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts
assertion_anchors:
  - scenario: ATS-MBR-MEM-014-01
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#publishes
      an open item for a membership whose term ends inside the horizon
  - scenario: ATS-MBR-MEM-014-01
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#publishes
      nothing for a term that ends outside the horizon
  - scenario: ATS-MBR-MEM-014-01
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#publishes
      nothing for a term that already has a successor
  - scenario: ATS-MBR-MEM-014-01
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#publishes
      a term the tenant’s wider horizon reaches
  - scenario: ATS-MBR-MEM-014-03
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#addresses
      the item to membership.renewals, the definition’s default
  - scenario: ATS-MBR-MEM-014-04
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#scopes
      the item by the membership’s chapter and its ancestors, most specific
      first, then the tenant
  - scenario: ATS-MBR-MEM-014-05
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#is
      due at the start of the term’s last day and expires thirty days after it
  - scenario: ATS-MBR-MEM-014-06
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#refreshes
      the same item’s facts on the next pass rather than opening another
  - scenario: ATS-MBR-MEM-014-06
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#resolves
      the item cleared on the next pass once its term leaves the horizon
  - scenario: ATS-MBR-MEM-014-06
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#stamps
      the pass with what it published
  - scenario: ATS-MBR-MEM-014-07
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#resolves
      the item renewed in the staff renewal’s transaction
  - scenario: ATS-MBR-MEM-014-07
    source: >-
      services-membership:modules/memberships/tests/integration/services/expiring-memberships.integration.spec.ts#resolves
      the item terminated in the termination’s transaction
---

# Expiry attention publication and resolution

## Verification Boundary

Membership writes, dated reads, affiliations, standing and officer scope run against the prepared database.

## What This Suite Proves

The structured bindings identify the capability and feature cases whose reviewed assertions this suite executes. Source anchors preserve the evidence for each binding.

## What It Does Not Prove

A local pass does not qualify deployed scheduling, browser administration or successful production partner calls. Registration records existing code and leaves execution and conformance unverified.

## Real Dependencies and Test Doubles

The database constraints and workspace-scoped persistence exercised by this suite remain real; manual clocks, supplied callers and neighbor fixtures define the local boundary.

## Must Not Be Doubled

Keep the prepared database, workspace boundary, exercised owner constraints and the business operation under test real. A partner double cannot substitute for the Membership write this suite claims to exercise.
