---
id: TST-PFM-SEC-022
title: HQ lists console checks
kind: browser-lifecycle
product_area: platform
module: security
revision: 2
status: draft
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repository: react-console
files:
  - e2e/mock/hq-lists.mock.spec.ts
implements:
  - ATS-PFM-SEC-017-13
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 10
isolation: The browser context and intercepted responses belong to this run.
assertion_evidence:
  - provenance: test
    source: 'react-console:e2e/mock/hq-lists.mock.spec.ts#Rhythm HQ context (staff)'
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#a staff member lands on /hq with only Rhythm HQ's
      navigation
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#the customers list renders Platform's records,
      pages, and opens a customer
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#the tenants list renders, pages and filters by
      status
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#the jobs list renders and pages with Platform's
      cursor
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#the jobs list says System for Platform's own
      work, never its requester id
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#the jobs list names the signed-in staff member's
      own jobs, never by their user id
  - provenance: test
    source: 'react-console:e2e/mock/hq-lists.mock.spec.ts#opening a tenant against entering it (staff)'
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#the tenant's name opens its screen in HQ rather
      than entering the tenant
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#the row's Enter Tenant icon is what enters the
      tenant
  - provenance: test
    source: 'react-console:e2e/mock/hq-lists.mock.spec.ts#entering a tenant (staff)'
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#without a grant asks for emergency access,
      validates it, then switches in with only the tenant's navigation
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#Return to HQ leaves the tenant for Rhythm HQ with
      no tenant selected
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#Return to HQ from a tenant's page deeper in
      leaves the tenant, and the home lists the recent jobs
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#a standing grant (no expiry) enters with no
      dialog, and the banner names no end
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#a standing grant cannot be ended from the banner:
      End Access is disabled and Return to HQ leaves
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#a customer-level standing grant enters any tenant
      of that customer with no dialog
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#a customer-level grant does not reach another
      customer's tenant: that one asks for emergency access
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#End Access ends the grant and returns to HQ; the
      tenant then asks for access again
  - provenance: test
    source: 'react-console:e2e/mock/hq-lists.mock.spec.ts#Rhythm HQ (not staff)'
  - provenance: test
    source: >-
      react-console:e2e/mock/hq-lists.mock.spec.ts#a customer administrator opening ${path} is sent
      to their tenant and never sees HQ
dependency_evidence: >-
  The console runs in a browser with fixture data or intercepted responses. Assertions cover the
  displayed refusal, navigation or editing outcome; the substituted response does not establish
  server enforcement.
evidence:
  - 'react-console:e2e/mock/hq-lists.mock.spec.ts'
  - >-
    Static review at the recorded source revision; executable results remain not-run and conformance
    remains not-verified.
binding_note: >-
  Each binding names the scenario to which this file contributes assertions. A binding is not a
  recorded pass and does not extend the file’s dependency boundary.
examiner: codex
examined_at: '2026-10-23'
final_text: OpenAI
---
# HQ lists console checks

## Verification Boundary

The file drives console behavior with controlled data or responses. The assertion references identify the source checks for HQ lists.

## What This Suite Proves

The source assertions support the observations named in the bound scenarios. A scenario spanning multiple files must retain the other files’ contributions.

## 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 console runs in a browser with fixture data or intercepted responses. Assertions cover the displayed refusal, navigation or editing outcome; the substituted response does not establish server enforcement.

## Must Not Be Doubled

Keep the console code and browser navigation real. A controlled success or refusal must remain distinguishable from enforcement by the actual service.
