---
id: TST-PFM-CSH-034
title: Strict workspace context reader
kind: unit
product_area: platform
module: console-shell
revision: 1
status: draft
source_sha:
  rhythm-v2-docs: 25e253cb434aac6603ee294e3ca197ab6c4bfd0b
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: react-console
files:
  - lib/security-context/tenant-id.test.ts
implements:
  - ATS-PFM-CSH-010-06
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: >-
  Independent in-memory fixtures, static rendering or read-only source
  inspection; mocked listeners and global state are restored by the test.
evidence:
  - >-
    react-console:lib/security-context/tenant-id.test.ts at
    baf6dae382d6f41dce976c7f848667ccc37e076f
  - >-
    react-console:lib/security-context/tenant-id.test.ts#refuses a 200 about
    another tenant than the one asked for, warning in the console
binding_boundary:
  - scenario: ATS-PFM-CSH-010-06
    provenance: test
    source: >-
      react-console:lib/security-context/tenant-id.test.ts#refuses a 200 about
      another tenant than the one asked for, warning in the console
    note: >-
      This file supplies the complete stated scenario outcome at its declared
      test boundary.
---

# Strict workspace context reader

## Verification Boundary

Doubled responses check the lowercased strict request, matching answers, classified refusals and rejection of a different workspace. Browser decoding, remembered refusal time and provider reuse are not asserted.

This register records static review at the supplied source commits. The suite exists, but this pass does not run it or mark its conformance verified.

## What This Suite Proves

- A strict read refuses the wrong workspace answer.

Bindings that span files are collective: each file contributes only its recorded assertions. The exact anchors are in frontmatter.

## What It Does Not Prove

The register claims only the linked scenario outcomes at this boundary. It establishes no passing deployment result, complete permission matrix or unlisted cross-capability journey. Proposed scenarios and the remaining lifecycle, invariant and race obligations stay in the coverage findings.

## Real Dependencies and Test Doubles

The context helper and its parsing and decision functions are real. Injected request functions answer independent in-memory fixtures, so transport and service authorization are doubled.

## Must Not Be Doubled

Do not replace the function, component, registry or source declaration under test. Keep the expected outcome independent of its implementation; injected inputs do not justify stubbing the computation being verified.
