---
id: TST-PFM-TNL-094
title: Platform deletion eligibility calculation
kind: unit
product_area: platform
module: tenant-lifecycle
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/tenants/tests/unit/services/deletion/waiting-period.spec.js
implements: []
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: Own in-process inputs and any installed dependency seams; restore process state after the file.
evidence:
  - 'services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js'
  - >-
    services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js imports
    ../../../../services/deletion/waiting-period
  - >-
    services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js imports
    ../../../../services/deletion/notice-schedule
binding_scope: >-
  No complete ATS or FAS scenario implementation is claimed for this file. Partial assertions, if present,
  remain evidence rather than implements links.
partial_scenario_evidence:
  - scenario: ATS-PFM-TNL-013-06
    references:
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#becomes eligible
        thirty days after the request
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#refuses a
        configured period below fourteen days rather than quietly raising it
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#accepts exactly
        fourteen days (the boundary, the negative control)
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-07
    references:
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#waits one day,
        because no association ever used it
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#waits one day in
        Production too, where the fourteen-day floor does not apply to it
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-08
    references:
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#waits ten
        minutes outside Production, so an automated test can watch a whole deletion
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#is refused a
        period longer than the configured one, so the field can only shorten
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#is refused for a
        tenant that is not disposable, rather than ignored
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#is refused in
        Production even for a disposable tenant
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-015-01
    references:
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#owes the notice
        at request, the seven-day reminder and the one-day reminder, in that order
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#is owed at
        exactly eight days, the shortest period with room for it
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#is skipped just
        below eight days, where it would fall before the request itself
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#is due at once
        just below two days, so a short period still has the notice destruction waits for
      - >-
        services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#is due at once
        for a one-day period, the never-active tenant
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
---
# Platform deletion eligibility calculation

## Verification Boundary

The suite calls policy, mapping, manifest or dependency-injected code in process. Its assertions establish the named local behavior without a deployed API or a migrated cross-application workflow.

## What This Suite Proves

Deletion eligibility calculation is the inspected subject. The inspected engineering checks remain available in the register. Some may contribute partial assertions to capability scenarios, but the file is not claimed to implement any complete scenario; the unbound inventory records that remaining mapping work.

## What It Does Not Prove

Source inspection supplies no passing run. The suite does not establish console behavior, deployment configuration, complete removal in every application or recovery from a provider failure beyond its declared seams. A local zero inventory covers declared and seeded resources only.

## Real Dependencies and Test Doubles

The source uses in-process policy and manifest inputs, and dependency seams where declared. Imported libraries are part of the exercised code; collaborator answers do not establish database enforcement or provider behavior.

## Must Not Be Doubled

Keep the policy, mapper, declaration or formatting function named by the source real; do not replace its return value with the expected answer. Any future database or API qualification must add the real boundary separately.
