STD: Global UI (GLOBALUI)
Version: v1.0.0 Status: Draft SRS Source:
docusaurus/docs/srs/globalui.mdDomain: GLOBALUI
Overview
This document specifies tests for the Global UI domain, which covers cross-cutting user interface behaviors including system status communication, session management, user identification, notification delivery, and user preference controls.
Domain Characteristics:
- Primary function: Cross-cutting UI behaviors
- Secondary function: Backend session management and feature toggle persistence
- Configuration dependency: Session timeouts, notification settings, feature flags
Test Method Rationale: Per Test Plan section 3.3, UI Features domains use TM-UI as primary method with TM-MAN fallback. GLOBALUI has some backend logic (session management, site filtering, feature toggles), so TM-API is used for configuration verification while TM-UI handles user interaction flows. TM-MAN is used for maintenance mode testing since it requires deployment coordination.
Test Case Convention: Steps describe logical actions, not UI mechanics. Use "Navigate to application" or "Enable infinite scrolling toggle", not "Click the toggle button in the top bar". This ensures test intent survives UI redesigns.
Coverage Summary
| REQ ID | Title | ACs | Tests | AC Coverage | Method | Gaps |
|---|---|---|---|---|---|---|
| REQ-GLOBALUI-001 | Display Maintenance Status | 3 | TC-GLOBALUI-001, TC-GLOBALUI-020, TC-GLOBALUI-021, TC-GLOBALUI-022, TC-GLOBALUI-SIDEBAR-CA | 3/3 (100%) | TM-MAN, TM-UI | None |
| REQ-GLOBALUI-002 | Display Application Version | 2 | TC-GLOBALUI-002, TC-GLOBALUI-003 | 2/2 (100%) | TM-UI | None |
| REQ-GLOBALUI-003 | Communicate Session Termination Reason | 4 | TC-GLOBALUI-004, TC-GLOBALUI-005 | 4/4 (100%) | TM-UI | None |
| REQ-GLOBALUI-004 | Provide Idle Timeout Warning | 5 | TC-GLOBALUI-006, TC-GLOBALUI-007 | 5/5 (100%) | TM-UI | None |
| REQ-GLOBALUI-005 | Paginate Application Notifications | 6 | TC-GLOBALUI-008, TC-GLOBALUI-009, TC-GLOBALUI-010 | 6/6 (100%) | TM-UI | None |
| REQ-GLOBALUI-006 | Display User Display Names | 4 | TC-GLOBALUI-011, TC-GLOBALUI-012 | 4/4 (100%) | TM-UI | None |
| REQ-GLOBALUI-007 | Filter Sites by Cognito Group | 3 | TC-GLOBALUI-013, TC-GLOBALUI-014 | 3/3 (100%) | TM-HYB | None |
| REQ-GLOBALUI-008 | Display User Role Indicator | 3 | TC-GLOBALUI-015, TC-GLOBALUI-ROLE-CA, TC-GLOBALUI-ROLE-MGR, TC-GLOBALUI-ROLE-SR, TC-GLOBALUI-ROLE-JR, TC-GLOBALUI-ROLE-SA | 3/3 (100%) | TM-UI | None |
| REQ-GLOBALUI-009 | Provide Infinite Scrolling Toggle | 4 | TC-GLOBALUI-016, TC-GLOBALUI-017 | 4/4 (100%) | TM-HYB | None |
Totals: 9 REQs, 34 ACs, 26 Test Cases, 100% Coverage
Test Cases
TC-GLOBALUI-001: Maintenance status page display during deployment
Verifies: REQ-GLOBALUI-001 (AC1, AC2, AC3)
Method: TM-MAN
Priority: Critical
Preconditions:
- Test environment available for deployment simulation
- Ability to trigger maintenance mode
Steps:
- Trigger system maintenance mode (deployment simulation)
- Attempt to access the application URL as an unauthenticated user
- Observe the displayed page
- Attempt to access a direct application route
Expected Results:
- AC1: All access attempts are redirected to the maintenance status page
- AC2: The maintenance status page communicates that the system is temporarily unavailable
- AC3: The maintenance status page is displayed instead of error pages
Automation Status: Manual
Jira: BT-744
Deviation: TM-MAN used because maintenance mode testing requires deployment coordination and environment control that cannot be reliably automated.
TC-GLOBALUI-002: Version number visible to Super Admin
Verifies: REQ-GLOBALUI-002 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Super Admin role exists
- Application is deployed with a known version number
Steps:
- Log in as Super Admin user
- Navigate to any application page
- Observe the application interface for version number display
Expected Results:
- AC1: The version number is visible to the Super Admin user
Automation Status: Automated (Browser)
Feature: globalui.feature
Jira: BT-713
TC-GLOBALUI-003: Version number hidden from non-Super Admin roles
Verifies: REQ-GLOBALUI-002 (AC1, AC2)
Method: TM-UI
Priority: Medium
Preconditions:
- Users with each non-Super Admin role exist (Junior, Senior, Client Admin, Manager)
Steps:
- Log in as Junior User
- Navigate to any application page
- Verify version number is not visible
- Log out and repeat for Senior User, Client Admin, and Manager roles
Expected Results:
- AC1: Version number is NOT visible to Junior User
- AC1: Version number is NOT visible to Senior User
- AC1: Version number is NOT visible to Client Admin
- AC1: Version number is NOT visible to Manager
- AC2: Version number display is consistent across all environments
Automation Status: Automated
Jira: BT-713
TC-GLOBALUI-004: Session timeout termination message
Verifies: REQ-GLOBALUI-003 (AC1, AC3, AC4)
Method: TM-UI
Priority: High
Preconditions:
- Session timeout configured to testable duration
- Idle timeout configured to longer than session timeout
Test Data:
- Session timeout: 60 seconds (for testing)
- Idle timeout: 120 seconds (for testing)
Steps:
- Log in as any user
- Perform actions continuously until session timeout elapses
- Observe termination behavior
- Observe the authentication interface after redirect
Expected Results:
- AC1: Session timeout triggers a message explaining session expiration
- AC3: User is redirected to the authentication interface after termination
- AC4: The termination reason message is displayed on the authentication interface
Automation Status: Manual
Deviation: SESSION_LIFETIME is a server-side environment variable that cannot be changed at runtime. Testing session expiration requires restarting the artisan serve process with a short SESSION_LIFETIME, which is not practical for automated browser tests.
Jira: BT-925
TC-GLOBALUI-005: Inactivity timeout termination message
Verifies: REQ-GLOBALUI-003 (AC2, AC3, AC4)
Method: TM-UI
Priority: High
Preconditions:
- Idle timeout configured to testable duration
- Session timeout configured to longer than idle timeout
Test Data:
- Session timeout: 120 seconds (for testing)
- Idle timeout: 60 seconds (for testing)
Steps:
- Log in as any user
- Remain inactive until idle timeout elapses (do not interact with application)
- Observe termination behavior
- Observe the authentication interface after redirect
Expected Results:
- AC2: Inactivity timeout triggers a message explaining inactivity termination
- AC3: User is redirected to the authentication interface after termination
- AC4: The termination reason message is displayed on the authentication interface
Automation Status: Automated (Browser)
Feature: globalui-idle-timeout.feature
Jira: BT-925
TC-GLOBALUI-006: Idle timeout warning display and countdown
Verifies: REQ-GLOBALUI-004 (AC1, AC2, AC3)
Method: TM-UI
Priority: High
Preconditions:
- Idle timeout and countdown warning configured to testable durations
Test Data:
- Idle timeout: 30 seconds
- Warning countdown: 15 seconds
Steps:
- Log in as any user
- Remain inactive until warning is triggered
- Observe warning display
- Continue to remain inactive until countdown reaches zero
- Observe automatic logout
Expected Results:
- AC1: Warning is displayed when user is inactive for the configured idle time
- AC2: Warning includes a visible countdown indicating time remaining before logout
- AC3: When countdown reaches zero, user is automatically logged out
Automation Status: Automated (Browser)
Feature: globalui-idle-timeout.feature
Jira: Pending
TC-GLOBALUI-007: Idle timeout warning dismissal via interaction
Verifies: REQ-GLOBALUI-004 (AC4, AC5)
Method: TM-UI
Priority: High
Preconditions:
- Same as TC-GLOBALUI-006
Steps:
- Log in as any user
- Remain inactive until warning is triggered
- Interact with the application before countdown ends
- Observe warning dismissal
- Verify idle timeout timer has reset by remaining inactive again
Expected Results:
- AC4: Warning is dismissed when user interacts with application
- AC5: Idle timeout timer restarts after warning dismissal
- User is not logged out after interaction
Automation Status: Automated (Browser)
Feature: globalui-idle-timeout.feature
Jira: Pending
TC-GLOBALUI-008: Initial notification load limit
Verifies: REQ-GLOBALUI-005 (AC1, AC2)
Method: TM-UI
Priority: Medium
Preconditions:
- User has more than the configured initial notification count
Test Data:
- Create 15 notifications for user within retention period
- Default initial load: 10
Steps:
- Log in as user with 15 notifications
- Access the notifications display
- Count displayed notifications
Expected Results:
- AC1: Only 10 notifications are displayed initially (configured initial count)
- AC2: All notifications are within the configured retention period
Automation Status: Automated (Browser)
Feature: globalui.feature
Jira: BT-3847
TC-GLOBALUI-009: End of notifications indication
Verifies: REQ-GLOBALUI-005 (AC3)
Method: TM-UI
Priority: Medium
Preconditions:
- User has fewer notifications than initial load count
Test Data:
- Create 5 notifications for user
Steps:
- Log in as user with 5 notifications
- Access the notifications display
- Observe indication of notification availability
Expected Results:
- AC3: System indicates end of available notifications when no more exist
Automation Status: Automated (Browser)
Feature: globalui.feature
Jira: BT-3847
TC-GLOBALUI-010: Load additional notifications
Verifies: REQ-GLOBALUI-005 (AC4, AC5, AC6)
Method: TM-UI
Priority: Medium
Preconditions:
- User has more notifications than initial load count
Test Data:
- Create 25 notifications for user
- Initial load: 10
Steps:
- Log in as user with 25 notifications
- Access the notifications display (10 shown initially)
- Verify load more option is available
- Select quantity of additional notifications to load (e.g., 10)
- Request additional notifications
- Count total displayed notifications
Expected Results:
- AC4: Option to load more notifications is provided when additional notifications exist
- AC5: User can select the quantity of additional notifications to load
- AC6: Loading additional notifications appends them to existing list (20 now displayed)
Automation Status: Automated (Browser)
Feature: globalui.feature
Jira: BT-3847
TC-GLOBALUI-011: Display names in reports and header
Verifies: REQ-GLOBALUI-006 (AC1, AC3)
Method: TM-UI
Priority: High
Preconditions:
- User with distinct username and display name
Test Data:
- Username: "jsmith"
- Display Name: "John Smith"
Steps:
- Log in as user "jsmith" with display name "John Smith"
- Observe user identification in application header
- Navigate to any report screen (except Audit Report)
- Observe user identification in report
Expected Results:
- AC1: User identification in report screens shows "John Smith" (not "jsmith")
- AC3: User identification in header shows "John Smith" (not "jsmith")
Automation Status: Automated (Browser)
Feature: globalui.feature
Jira: BT-3856
TC-GLOBALUI-012: Display names in exports and Audit Report exception
Verifies: REQ-GLOBALUI-006 (AC2, AC4)
Method: TM-UI
Priority: High
Preconditions:
- User with distinct username and display name
- Access to Audit Report
Test Data:
- Username: "jsmith"
- Display Name: "John Smith"
Steps:
- Log in as user "jsmith" with display name "John Smith"
- Perform an action that appears in Audit Report
- Export any file containing user identification
- Verify exported file content
- Navigate to Audit Report
- Observe user identification in Audit Report
Expected Results:
- AC2: User identification in exported files shows display name "John Smith"
- AC4: Audit Report displays username "jsmith" (NOT display name) for compliance
Automation Status: Automated
Jira: BT-3856
TC-GLOBALUI-013: Cognito group user sees all sites
Verifies: REQ-GLOBALUI-007 (AC1)
Method: TM-HYB
Priority: High
Preconditions:
- User with Cognito User Group configured
- Sites with and without Cognito group requirement
Test Data:
- User A: Has Cognito User Group
- Site X: Requires Cognito Group = Yes
- Site Y: Requires Cognito Group = No
Steps:
- Configure Site X to require Cognito group (API/Admin)
- Configure Site Y to not require Cognito group (API/Admin)
- Log in as User A (with Cognito group)
- Access site picker/site list
- Verify visible sites
Expected Results:
- AC1: User with Cognito User Group sees both Site X and Site Y
Automation Status: Manual
Deviation: Cognito group filtering occurs during the SAML login callback flow (HandleAuthenticated), which is bypassed by the /_test/login route used in browser tests. The site visibility filtering based on cognito_group cannot be tested without the real Cognito SAML authentication flow.
Jira: BT-3841
TC-GLOBALUI-014: Non-Cognito user site filtering
Verifies: REQ-GLOBALUI-007 (AC2, AC3)
Method: TM-HYB
Priority: High
Preconditions:
- User without Cognito User Group
- Sites with and without Cognito group requirement
Test Data:
- User B: No Cognito User Group
- Site X: Requires Cognito Group = Yes
- Site Y: Requires Cognito Group = No
Steps:
- Configure Site X to require Cognito group (API/Admin)
- Configure Site Y to not require Cognito group (API/Admin)
- Log in as User B (without Cognito group)
- Access site picker/site list
- Verify visible sites
Expected Results:
- AC2: User without Cognito User Group sees only Site Y
- AC3: Site X (requiring Cognito group) is hidden from User B
Automation Status: Manual
Deviation: Same as TC-GLOBALUI-013 — Cognito group filtering occurs during SAML callback, not testable via /_test/login.
Jira: BT-3841
TC-GLOBALUI-015: Role indicator display and interaction
Verifies: REQ-GLOBALUI-008 (AC1, AC2, AC3)
Method: TM-UI
Priority: Medium
Preconditions:
- Users with each role type available
Test Data:
- Junior User, Senior User, Super Admin, Client Admin, Manager accounts
Steps:
- Log in as Super Admin
- Observe role indicator adjacent to display name
- Interact with role indicator to access extended role information
- Log out and repeat for each role type (Junior, Senior, Client Admin, Manager)
Expected Results:
- AC1: Each role has a distinct visual indicator (Super Admin: SA, Junior: J, Senior: S, Client Admin: CA, Manager: M)
- AC2: Role indicator is displayed adjacent to user's display name
- AC3: Extended role information is available on user interaction with the indicator
Automation Status: Automated (Browser)
Feature: globalui.feature
Jira: BT-4206
TC-GLOBALUI-016: Infinite scrolling toggle functionality
Verifies: REQ-GLOBALUI-009 (AC1, AC2, AC3)
Method: TM-HYB
Priority: Medium
Preconditions:
- User logged in
- Page with scrollable content available
Steps:
- Log in as any user
- Observe current toggle state
- Navigate to page with scrollable content
- Observe current scrolling behavior
- Toggle infinite scrolling setting
- Verify toggle control reflects new state
- Navigate to same scrollable content page
- Verify scrolling behavior has changed
Expected Results:
- AC1: User can toggle infinite scrolling on or off
- AC2: Toggle control reflects the current state of infinite scrolling
- AC3: Toggling changes infinite scrolling behavior across applicable screens
Automation Status: Automated (Browser)
Feature: globalui.feature
Jira: BT-4773
TC-GLOBALUI-017: Infinite scrolling preference persistence
Verifies: REQ-GLOBALUI-009 (AC4)
Method: TM-HYB
Priority: Medium
Preconditions:
- User account available for testing
Steps:
- Log in as test user
- Set infinite scrolling to disabled
- Verify toggle reflects disabled state
- Log out
- Log back in as same user
- Observe toggle state
Expected Results:
- AC4: Toggle state persists across user sessions (remains disabled after re-login)
Automation Status: Automated (Browser)
Feature: globalui.feature
Jira: BT-4773
TC-GLOBALUI-020: JUNIOR sidebar menu item visibility
Verifies: REQ-GLOBALUI-001 (sidebar role gating)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Junior role exists
Steps:
- Log in as Junior user
- Navigate to the application home page
- Observe sidebar menu items
Expected Results:
- Run Files menu item is visible
- Upload Runs menu item is visible
- Audits menu item is visible
- User Management menu item is NOT visible
- Sites menu item is NOT visible
- Kit Configuration menu item is NOT visible
Automation Status: Automated (Browser)
Feature: role-tests.feature
TC-GLOBALUI-021: SENIOR sidebar menu item visibility
Verifies: REQ-GLOBALUI-001 (sidebar role gating)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Senior role exists
Steps:
- Log in as Senior user
- Navigate to the application home page
- Observe sidebar menu items
Expected Results:
- Run Files menu item is visible
- Upload Runs menu item is visible
- Audits menu item is visible
- User Management menu item is NOT visible
- Sites menu item is NOT visible
- Kit Configuration menu item is NOT visible
Automation Status: Automated (Browser)
Feature: role-tests.feature
TC-GLOBALUI-022: SUPER_ADMIN sidebar menu item visibility
Verifies: REQ-GLOBALUI-001 (sidebar role gating)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Super Admin role exists
Steps:
- Log in as Super Admin user
- Navigate to the application home page
- Observe sidebar menu items
Expected Results:
- Run Files menu item is visible
- Upload Runs menu item is visible
- Audits menu item is visible
- User Management menu item is visible
- Sites menu item is visible
- Kit Configuration menu item is visible
Automation Status: Automated (Browser)
Feature: role-tests.feature
TC-GLOBALUI-SIDEBAR-CA: CLIENT_ADMIN sidebar menu item visibility
Verifies: REQ-GLOBALUI-001 (sidebar role gating)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Client Admin role exists
Steps:
- Log in as Client Admin user
- Navigate to the application home page
- Observe sidebar menu items
Expected Results:
- User Management menu item is visible
- Run Files menu item is NOT visible
- Kit Configuration menu item is NOT visible
- Upload Runs menu item is NOT visible
Automation Status: Automated (Browser)
Feature: role-tests.feature
TC-GLOBALUI-ROLE-CA: Role indicator badge for CLIENT_ADMIN
Verifies: REQ-GLOBALUI-008 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Client Admin role exists
Steps:
- Log in as Client Admin user
- Navigate to any application page
- Observe role indicator badge
Expected Results:
- AC1: Role indicator displays "CA" abbreviation for Client Admin
Automation Status: Automated (Browser)
Feature: role-tests.feature
TC-GLOBALUI-ROLE-MGR: Role indicator badge for MANAGER
Verifies: REQ-GLOBALUI-008 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Manager role exists
Steps:
- Log in as Manager user
- Navigate to any application page
- Observe role indicator badge
Expected Results:
- AC1: Role indicator displays "M" abbreviation for Manager
Automation Status: Automated (Browser)
Feature: role-tests.feature
TC-GLOBALUI-ROLE-SR: Role indicator badge for SENIOR
Verifies: REQ-GLOBALUI-008 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Senior role exists
Steps:
- Log in as Senior user
- Navigate to any application page
- Observe role indicator badge
Expected Results:
- AC1: Role indicator displays "S" abbreviation for Senior
Automation Status: Automated (Browser)
Feature: role-tests.feature
TC-GLOBALUI-ROLE-JR: Role indicator badge for JUNIOR
Verifies: REQ-GLOBALUI-008 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Junior role exists
Steps:
- Log in as Junior user
- Navigate to any application page
- Observe role indicator badge
Expected Results:
- AC1: Role indicator displays "J" abbreviation for Junior
Automation Status: Automated (Browser)
Feature: role-tests.feature
TC-GLOBALUI-ROLE-SA: Role indicator badge for SUPER_ADMIN
Verifies: REQ-GLOBALUI-008 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User with Super Admin role exists
Steps:
- Log in as Super Admin user
- Navigate to any application page
- Observe role indicator badge
Expected Results:
- AC1: Role indicator displays "SA" abbreviation for Super Admin
Automation Status: Automated (Browser)
Feature: role-tests.feature
Gap Analysis
No gaps identified. All 34 acceptance criteria have test coverage.
Coverage by AC Type
| AC Category | Count | Covered | Notes |
|---|---|---|---|
| Access Control/Visibility | 7 | 7 | Role-based visibility, site filtering |
| User Communication | 8 | 8 | Messages, warnings, notifications |
| Display/Rendering | 10 | 10 | Version, names, indicators, counts |
| Interaction/Behavior | 6 | 6 | Timeout, toggle, navigation |
| Persistence/Configuration | 3 | 3 | Session state, preference storage |
Traceability to Existing Tests
| Test Case | Jira Test | Automation |
|---|---|---|
| TC-GLOBALUI-001 | BT-744 | Manual |
| TC-GLOBALUI-002, TC-GLOBALUI-003 | BT-713 | Selenium |
| TC-GLOBALUI-004 | BT-925 | Manual (session timeout env var) |
| TC-GLOBALUI-005 | BT-925 | Browser (Behat/Mink) |
| TC-GLOBALUI-006, TC-GLOBALUI-007 | Pending | Browser (Behat/Mink) |
| TC-GLOBALUI-008, TC-GLOBALUI-009, TC-GLOBALUI-010 | BT-3847 | Browser (Behat/Mink) |
| TC-GLOBALUI-011, TC-GLOBALUI-012 | BT-3856 | Selenium |
| TC-GLOBALUI-013, TC-GLOBALUI-014 | BT-3841 | Manual (Cognito SAML flow) |
| TC-GLOBALUI-015 | BT-4206 | Selenium |
| TC-GLOBALUI-016, TC-GLOBALUI-017 | BT-4773 | Behat |
| TC-GLOBALUI-020, TC-GLOBALUI-021, TC-GLOBALUI-022, TC-GLOBALUI-SIDEBAR-CA | — | Browser (Behat/Mink) |
| TC-GLOBALUI-ROLE-CA, TC-GLOBALUI-ROLE-MGR, TC-GLOBALUI-ROLE-SR, TC-GLOBALUI-ROLE-JR, TC-GLOBALUI-ROLE-SA | — | Browser (Behat/Mink) |
Notes
- GLOBALUI is a cross-cutting domain with primarily frontend implementations
- REQ-GLOBALUI-001 (Maintenance Mode) requires manual testing due to deployment coordination
- REQ-GLOBALUI-007 (Cognito filtering) uses TM-HYB due to backend configuration requirements
- REQ-GLOBALUI-004 (Idle Timeout Warning) tests require configurable short timeouts for practical test execution
- Existing Gherkin tests in SRS cover the same scenarios; this STD formalizes the method and coverage