Skip to content

ATS-PFM-CSH-006Find a destination in the application menu: Capability Test Specification

Markdown

ATS-PFM-CSH-006

Find a destination in the application menu: Capability Test Specification

Markdown
  • DocumentDraft

Planning

Proves capability
CAP-PFM-CSH-006

Design

Change
RS-20
Executed by
TST-PFM-CSH-011, TST-PFM-CSH-021, TST-PFM-CSH-024

KindAcceptance test setProduct areaPlatformModuleConsole Shell and NavigationRevision4

Read atdocs-2 fb280683react-console baf6dae3services-platform ad3f6a65rhythm-v2-docs 25e253cb

Coverage

  • Rule covered
  • Transition covered
  • Validation covered
  • Permission gap: FND-PFM-CSH-056
  • Edge gap: FND-PFM-CSH-056
  • Failure gap: FND-PFM-CSH-056
  • Boundary gap: FND-PFM-CSH-056
  • Concurrency gap: FND-PFM-CSH-056
  • Invariant gap: FND-PFM-CSH-056
  • Interaction gap: FND-PFM-CSH-056

Test Scenarios

11 scenarios proving CAP-PFM-CSH-006; 5 bound to an existing test.

01 Entitlements remove unusable menu sectionspermissionunitnegativetest
Proves
BR-CAP-PFM-CSH-006-02
Preconditions
Input grants enable only selected application domains and item keys.
Steps
Compute visible sections from the registered menu.
Expected
Unavailable domains and refused entries disappear, including sections emptied by filtering.
Data
Independent fixture inputs for the variants listed in this case.
Bound to
Source
react-console:lib/console/__tests__/registries.test.ts#hides domains the user cannot access and keeps what they can
02 An omitted product contributes no sidebar sectionpermissionbrowsernegativetest
Proves
BR-CAP-PFM-CSH-006-02 AS-JNY-PFM-CSH-005-01
Preconditions
The fixture context lists no access to the selected product.
Steps
Open the demonstration workspace sidebar.
Expected
The absent product’s section is omitted from the rendered menu.
Data
An isolated browser context with the stated identity, workspace and response fixtures.
Bound to
Source
react-console:e2e/mock/application-access.mock.spec.ts#an application the organization does not have is absent from the sidebar
03 Tool grants and unguarded links remain distinctruleunitnegativetest
Proves
BR-CAP-PFM-CSH-006-03
Preconditions
Tool fixtures contain only part of the registered authority.
Steps
Compute tools and the separate related-service links.
Expected
Permitted tools remain; Websites remains visible because that menu link declares no permission.
Data
Independent fixture inputs for the variants listed in this case.
Bound to
Source
react-console:lib/console/__tests__/registries.test.ts#filters tool and settings links by permission
04 A readable placement can reveal an unfinished sectioninteractionunittest
Proves
BR-CAP-PFM-CSH-006-04 BR-CAP-PFM-CSH-008-07
Preconditions
Built-item and custom-placement fixtures exercise otherwise unfinished domains.
Steps
Assemble the menu with and without the active placement.
Expected
A built entry or eligible placement supplies the section’s display eligibility.
Data
Independent fixture inputs for the variants listed in this case.
Bound to
Source
react-console:lib/custom-objects/__tests__/navigation.test.ts#hides domains without a built screen, keeping Submissions and CRM
05 Direct destinations expose their navigation positioninteractionbrowserproposed
Proves
BR-CAP-PFM-CSH-006-06 BR-CAP-PFM-CSH-006-07 AS-JNY-PFM-CSH-002-02
Preconditions
A nested settings destination and custom record destination are readable.
Steps
Open each destination directly and inspect active navigation and breadcrumbs.
Expected
The entry and containing group identify the same current destination as the breadcrumb.
Data
An isolated browser context with the stated identity, workspace and response fixtures.
Source
react-console:components/console/app-sidebar.tsx:useSectionOpenState, NavSectionItem
06 Opening one section closes the preceding sectiontransitionbrowserproposed
Proves
BR-CAP-PFM-CSH-006-06
Preconditions
Two menu sections are visible with an empty filter.
Steps
Open the first section and then the second.
Expected
The second stays open while the first closes.
Data
An isolated browser context with the stated identity, workspace and response fixtures.
Source
react-console:e2e/mock/custom-object-navigation.mock.spec.ts#the menu filter finds a custom object and its record pages keep the section open
07 Menu filtering handles names, absence and resetvalidationbrowsernegativeproposed
Proves
BR-CAP-PFM-CSH-006-09
Preconditions
The menu supplies multiple section and entry labels.
Steps
Try an entry fragment, a section label and unmatched text; then use Escape.
Expected
Entry matches are emphasized, section matches retain their entries, no matches are explained and reset restores normal navigation.
Data
An isolated browser context with the stated identity, workspace and response fixtures.
Source
react-console:components/console/app-sidebar.tsx:filterSections, Highlight
08 The planned sidebar revision places Accounting beside CRMrulebrowserproposed
Proves
BR-CAP-PFM-CSH-006-13
Preconditions
The workspace fixture shows both CRM and Accounting after the usual eligibility checks.
Steps
Render the proposed sidebar and compare those two positions.
Expected
Their positions satisfy the recorded adjacency obligation, which remains unbuilt at the source pin.
Data
An isolated browser context with the stated identity, workspace and response fixtures.
Source
docs-2:specs/apps/console/planning/shell/tests/REQ-CNS-292/AC-REQ-CNS-292-01-sidebar-shows-accounting-directly-below-crm-for-a-user-with-both-applications.md#5. Acceptance Criteria
09 Moving Accounting preserves the other registry positionsinvariantunitproposed
Proves
BR-CAP-PFM-CSH-006-13
Preconditions
The proposed registry and the pre-change baseline are comparison fixtures.
Steps
Compare the complete sequences, then compare them with Accounting excluded.
Expected
The proposed registry meets its adjacency obligation; removing the moved entry leaves every other position unchanged.
Data
Independent fixture inputs for the variants listed in this case.
Source
docs-2:specs/apps/console/planning/shell/tests/REQ-CNS-292/AC-REQ-CNS-292-02-domain-registry-keeps-accounting-immediately-after-crm.md#5. Acceptance Criteria
10 Filtering retains the proposed registry orderpermissionbrowsernegativeproposed
Proves
BR-CAP-PFM-CSH-006-01 BR-CAP-PFM-CSH-006-02 BR-CAP-PFM-CSH-006-04 BR-CAP-PFM-CSH-006-13
Preconditions
Fixtures vary readable applications, built destinations and planned-only sections.
Steps
Render variants with both named applications present and each omitted separately.
Expected
Visible sections form the eligible registry subsequence; adjacency is checked when both named sections remain.
Data
An isolated browser context with the stated identity, workspace and response fixtures.
Source
docs-2:specs/apps/console/planning/shell/requirements/REQ-CNS-292-accounting-appears-immediately-under-crm-in-tenant-application-navigation.md#6. Required Behavior, items 4 and 6; docs-2:specs/apps/console/planning/shell/screens/shared/SCR-CNS-016-application-sidebar.md#4.1 Tenant-Mode Application Order
11 A placed object gives an unfinished application a destinationinteractionunittest
Proves
BR-CAP-PFM-CSH-006-04 BR-CAP-PFM-CSH-008-07
Preconditions
Awards has no built destination but contains an active readable Prizes placement.
Steps
Merge placement navigation into the complete domain registry and apply the built-item filter.
Expected
Awards survives with Prizes appended; without the placement it remains absent.
Data
Independent in-memory fixtures for each listed input.
Bound to
Source
react-console:lib/custom-objects/__tests__/navigation.test.ts#keeps a hidden domain reachable when a custom object is placed under it

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.