---
id: TST-PFM-TNL-063
title: Platform deletion request admission
kind: integration
product_area: platform
module: tenant-lifecycle
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
implements:
  - ATS-PFM-TNL-013-05
  - ATS-PFM-TNL-013-10
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
isolation: >-
  Run-owned target and comparison workspace records in the prepared test database; owner access is limited to
  fixture arrangement, independent inspection and cleanup of those records.
evidence:
  - 'services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js'
  - >-
    services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
    imports ../../../../services/deletion/request-deletion
  - >-
    services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
    imports ../../../../services/deletion/deletion-holds
  - >-
    services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
    imports ../../../../services/persistence/tenant-deletion-requests
  - >-
    services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
    imports ../../../../services/persistence/tenants
  - >-
    services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
    imports ../../../../db/tenants.table
  - >-
    services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
    imports ../../../../services/lifecycle/lifecycle-refusals
  - >-
    services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
    imports ../../support
  - >-
    services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js
    imports ../../../../../../db/seeds/well-known/well-known-objects
binding_scope: >-
  Each implements link names a scenario whose retained cited checks all occur in this file. Partial assertions
  for other scenarios remain evidence only.
partial_scenario_evidence:
  - scenario: ATS-PFM-TNL-013-01
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a caller who is not Rhythm staff
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#writes
        no request for a caller who is not Rhythm staff
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-02
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a confirmation that repeats the tenant id, which is no longer what the person types
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a reason too short to tell anybody anything
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a tenant that has changed since the screen was drawn
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-03
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a tenant that is still live, because people must lose access first
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a tenant that is still being implemented, for the same reason
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a tenant that is being deleted
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a tenant that is locked
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a tenant that is somebody else parent
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a well-known tenant the whole development environment is built on
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-04
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        a second request, naming the one that is open
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#leaves
        the tenant with exactly one request after the refusal
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-06
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#records
        the thirty-day waiting period Andrew set
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#fixes
        the date destruction may begin, thirty days on by the calendar of the tenant zone
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-07
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#makes
        a tenant that was never provisioned wait one day
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-08
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses
        the disposable path in Production, where no tenant is disposable
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-013-09
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#copies
        the tenant name and customer, so the record still reads after the tenant is gone
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#records
        who asked and why
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#moves
        the tenant to deletion_pending
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#owes
        the notice destruction waits for
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-015-01
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#makes
        both of those notices due at once, or a tenant with a one-day period could never be deleted
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
  - scenario: ATS-PFM-TNL-018-02
    references:
      - >-
        services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#copies
        the tenant name and customer, so the record still reads after the tenant is gone
    provenance: test
    scope: partial assertions; no complete scenario implementation claimed
---
# Platform deletion request admission

## Verification Boundary

The suite invokes production lifecycle services or persistence against its test database. Each fixture and directly called participant belongs to the repository named in the register; this is a local integration boundary.

## What This Suite Proves

Deletion request admission is the inspected subject. The implements links identify scenarios whose cited checks occur in this file. The original test-title references delimit those checks; partial contributions to other combined scenarios remain evidence only.

## 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 suite retains its database and production functions as shown by the cited source. Fixture clocks, contexts, seeded Platform facts or callback dependencies remain test inputs. The imported support is recorded as evidence; no external provider result is inferred from a local fixture.

## Must Not Be Doubled

Keep the production service or persistence function and the database constraints, row policies and guarded removal functions under test real. For dispatcher cases, keep route selection and authorization real as well. Provider and remote-application seams must remain explicit and cannot stand in for deployed cross-application qualification.
