---
id: TST-PFM-CSH-011
title: Application access in the browser
kind: browser-lifecycle
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:
  - e2e/mock/application-access.mock.spec.ts
implements:
  - ATS-PFM-CSH-006-02
  - ATS-PFM-CSH-016-01
  - ATS-PFM-CSH-016-09
  - ATS-PFM-CSH-017-03
  - FAS-PFM-CSH-04-02
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
isolation: Fresh browser context and demonstration local stores per test.
evidence:
  - >-
    react-console:e2e/mock/application-access.mock.spec.ts at
    baf6dae382d6f41dce976c7f848667ccc37e076f
  - >-
    react-console:e2e/mock/application-access.mock.spec.ts#an application the
    organization does not have is absent from the sidebar
  - >-
    react-console:e2e/mock/application-access.mock.spec.ts#brings the launcher
    up to date instead of leaving it offering what is gone
  - >-
    react-console:e2e/mock/application-access.mock.spec.ts#brings the launcher
    up to date instead of leaving it offering what is gone
  - >-
    react-console:e2e/mock/application-access.mock.spec.ts#the Applications page
    says which applications there are and why one cannot be used
  - >-
    react-console:e2e/mock/application-access.mock.spec.ts#brings the launcher
    up to date instead of leaving it offering what is gone
binding_boundary:
  - scenario: ATS-PFM-CSH-006-02
    provenance: test
    source: >-
      react-console:e2e/mock/application-access.mock.spec.ts#an application the
      organization does not have is absent from the sidebar
    note: >-
      This file supplies the complete stated scenario outcome at its declared
      test boundary.
  - scenario: ATS-PFM-CSH-016-01
    provenance: test
    source: >-
      react-console:e2e/mock/application-access.mock.spec.ts#brings the launcher
      up to date instead of leaving it offering what is gone
    note: >-
      This file supplies the complete stated scenario outcome at its declared
      test boundary.
  - scenario: ATS-PFM-CSH-016-09
    provenance: test
    source: >-
      react-console:e2e/mock/application-access.mock.spec.ts#brings the launcher
      up to date instead of leaving it offering what is gone
    note: >-
      This file supplies the complete stated scenario outcome at its declared
      test boundary.
  - scenario: ATS-PFM-CSH-017-03
    provenance: test
    source: >-
      react-console:e2e/mock/application-access.mock.spec.ts#the Applications
      page says which applications there are and why one cannot be used
    note: >-
      This file supplies the complete stated scenario outcome at its declared
      test boundary.
  - scenario: FAS-PFM-CSH-04-02
    provenance: test
    source: >-
      react-console:e2e/mock/application-access.mock.spec.ts#brings the launcher
      up to date instead of leaving it offering what is gone
    note: >-
      This file supplies the complete stated scenario outcome at its declared
      test boundary.
---

# Application access in the browser

## Verification Boundary

Demonstration sessions check omitted application sections, blocked and usable destinations, overview wording and application-coded refusal refresh. Policy editing and HQ override operations elsewhere in this file are outside the shell’s ownership.

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

- An omitted product contributes no sidebar section.
- A coded refusal refreshes offered applications.
- A coded refusal changes the menu in the same session.
- The overview explains its demonstration fixture rows.
- A coded refusal corrects the existing launcher.

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 browser, console components, route builders, menu computation and client provider are real. Demonstration handlers and local fixture stores replace Platform responses; there is no real sign-in or service database in this tier.

## Must Not Be Doubled

Do not replace the console’s routing, menu assembly, provider, destination guards or measured DOM with canned component outcomes. Demonstration responses or the declared controlled refusal are doubles at the response boundary, not substitutes for the console behavior under examination.
