---
id: TST-PFM-SEC-254
title: Workspaces.queries database and service checks
kind: integration
product_area: platform
module: security
revision: 2
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js
implements: []
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 3
isolation: Use the prepared test database and suite-owned fixture rows; retain shared seed records.
assertion_evidence:
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: the whole mapped tenant record
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#createTenant,
      the record its RETURNING clause answers
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the whole record of a tenant that states only what it must, every default filled in
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the whole record of a tenant that fills every column, the acronym suffixed to the name
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the whole record of a tenant that fills some columns and leaves others to their default
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no key at all for the parent of a tenant that has none
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#getTenant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#reads
      back the whole record of the tenant that fills every column, including its parent
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#reads
      back the sparse tenant with the defaults stored and no key for a null column
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#reads
      back a tenant with no parent, the parent key absent rather than null
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      exactly what createTenant answered, so the read and the insert map a row alike
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      undefined for an id no tenant has
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#listTenants
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      this run's four tenants whole, in id order
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the tenants of every customer, not only this run's
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      every row once, no row repeated
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#listTenantsByCustomer
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      whole, in id order, exactly the four tenants of this run's customer
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      an empty list for a customer that has no tenants
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      an empty list for a customer that does not exist
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#does
      not answer another customer's tenant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#listTenantReferencesByCustomer
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers,
      in id order, exactly the four tenants of this run's customer, each with its id, name,
      customer, lifecycle state and status
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the same tenants, in the same order, as the whole records of the customer
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      an empty list for a customer that has no tenants
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#listTenantReportReferences
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      this run's four tenants with their customer's name, by name then id
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      a tenant of every customer, the seeded ones included, which is what makes it a report of the
      whole system
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      every field as a plain value, with no mapped record around it
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#listTenantsByParent
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      whole, in id order, exactly the parent's two children
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#does
      not answer the parent itself, nor a tenant of the customer that names no parent
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      an empty list for a tenant that has no children
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#listTenantIds
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      this run's four tenant ids, in id order and nothing else of them
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the ids of every tenant, each a plain string
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      one id for each tenant listTenants answers
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#customerTenants
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the ids of this run's customer's tenants, in id order
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      an empty list for a customer that has no tenants
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      an empty list for a customer that does not exist
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenantCustomer
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the id of the customer that owns the tenant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      undefined for a tenant that does not exist
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#readTenantTimeZone
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the zone the tenant was created with, and nothing else of the row
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the system default for a tenant created without a zone
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      undefined for a tenant that does not exist
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: updateTenant, the record its RETURNING clause answers
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the whole replaced record: the new values, the bumped version, the original creation stamps
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the columns the replacement left out as absent keys, not as nulls
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#withdraws
      the portal request the replacement leaves out, clearing the instant it was asked at
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#persists
      exactly the record it answered, so the update and the read map a row alike
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#drops
      the replaced tenant out of its old parent’s children
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: the instants a write on the ordinary clock stamps
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the created instant as an ISO 8601 UTC timestamp
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the last-modified instant as an ISO 8601 UTC timestamp
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the activation instant as an ISO 8601 UTC timestamp
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the whole record around those three instants
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: the tenants background work may act for
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the active, undisabled tenant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no tenant that is still provisioning
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no tenant whose provisioning failed
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no tenant awaiting deletion
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no tenant being deleted
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no disabled tenant, active though its lifecycle is
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      them in id order
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: every tenant as a snapshot planner reads it (listSnapshotTenants)
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      a tenant with its zone, lifecycle state, status, type and creation instant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      a tenant that is not operational too, so the planner can record why it skipped it
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      them in id order
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: the lifecycle facts of one tenant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      every fact, each with its own value
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the activation instant in the wire form
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#carries
      no activation instant for a tenant that has never been provisioned
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#carries
      no lock for a tenant nobody has locked
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      nothing for a tenant that does not exist
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the same facts through the locking read, inside a transaction
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#refuses
      the locking read outside a transaction, because a lock no transaction holds is no lock
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      nothing through the locking read for a tenant that does not exist
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: the lifecycle facts of several tenants
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the facts of each tenant asked for, in id order
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      every fact of each, the absent activation instant included
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no tenant it was not asked for
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      one row for an id asked for twice
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      nothing for an id nobody holds
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#asks
      the database nothing when it is given no ids
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: the children and siblings a deletion precondition asks about
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#says
      a parent has children
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#says
      a childless tenant has none
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#says
      a tenant that does not exist has none
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the other tenants of the customer, in id order
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#never
      answers the tenant it was asked to leave out
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      nothing for a customer with no other tenant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: listTenantsForStaff, the HQ tenant list
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      each tenant as getTenant answers it, with its customer's name
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#leaves
      customerName out for a customer that has no name
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#orders
      by name and breaks a tie of names by id
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#matches
      the tenant name whatever its case
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#matches
      the tenant id, whatever its case
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#matches
      a fragment of the tenant id, which is how staff find a tenant by the association's domain
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#matches
      the customer's name, answering every tenant of that customer
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#takes
      a percent sign in the search literally rather than as a wildcard
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      only the customer's tenants when a customer is named
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      only the tenants of the status asked for
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#applies
      the customer and the status together
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      only the tenants of the type asked for
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the tenants of the type every other fixture was left at, so the filter is not matching by
      accident
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      nothing for a type no tenant of the run has
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#applies
      the type beside the status, narrowing to the tenants that are both
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      tenants of every customer when nothing narrows it
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no more than the limit, and the keyset of the last tenant answered
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#resumes
      after the keyset, so the pages together answer every tenant once and in order
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no next keyset on the last page
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: getTenantForStaff, the HQ tenant detail
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the tenant record exactly as getTenant answers it
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the name of the customer that owns the tenant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the name of a sandbox's parent
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the sandboxes of the tenant by name, each with its id, name, status and type
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#never
      answers the sandbox of another tenant of the same customer
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#leaves
      parentName out for a tenant that has no parent
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      an empty sandbox list for a tenant that has no children
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#leaves
      customerName out for a customer that has no name
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      undefined for a tenant that does not exist
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: getTenantForStaff stops at the sandbox maximum
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the maximum and no more, although one more child exists
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the first ones by name, so the one left out is the last by name and not an arbitrary row
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: listTenantSummariesOfCustomer, a customer page in HQ
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the customer's tenants as id, name and status alone, by name and then id
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#never
      answers another customer's tenant
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      no more than a smaller limit asked for
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      an empty list for a customer with no tenants
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#tenants
      queries: listTenantSummariesOfCustomer at its maximum
  - provenance: test
    source: >-
      services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js#answers
      the first 200 tenants by name, however many more are asked for
dependency_evidence: >-
  The prepared PostgreSQL database supplies the persisted fixtures and constraints exercised here.
  The suite controls the clock at the declared seams; those collaborators remain outside its live
  proof.
evidence:
  - >-
    services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js
  - >-
    Static review at the recorded source revision; executable results remain not-run and conformance
    remains not-verified.
binding_note: >-
  The file has no scenario binding established by this examination. Its executable checks remain
  registered without assigning them broader acceptance coverage.
examiner: codex
examined_at: '2026-10-23'
final_text: OpenAI
dependency_review:
  provenance: test
  source: >-
    services-platform:modules/tenants/tests/integration/services/persistence/tenants.queries.integration.spec.js
  explicit_no_doubles: false
  identified_double_boundaries:
    - the clock
---
# Workspaces.queries database and service checks

## Verification Boundary

The file exercises database or service behavior through the local integration harness. The assertion references identify the source checks for workspaces.queries.

## What This Suite Proves

The file supplies executable engineering checks for the named subject. No complete acceptance scenario is inferred from the file’s existence.

## What It Does Not Prove

This examination does not run the suite. Passing behavior, deployed conformance and the behavior of substituted dependencies require separate execution evidence.

## Real Dependencies and Test Doubles

The prepared PostgreSQL database supplies the persisted fixtures and constraints exercised here. The suite controls the clock at the declared seams; those collaborators remain outside its live proof.

## Must Not Be Doubled

Keep the queried database, applicable constraints and transaction boundaries real. Provider substitutes cannot establish delivery, cloud execution or cross-service recovery.
