Skip to main content
Version: 3.0.0

STD: Global UI (GLOBALUI)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/globalui.md Domain: 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 IDTitleACsTestsAC CoverageMethodGaps
REQ-GLOBALUI-001Display Maintenance Status3TC-GLOBALUI-001, TC-GLOBALUI-020, TC-GLOBALUI-021, TC-GLOBALUI-022, TC-GLOBALUI-SIDEBAR-CA3/3 (100%)TM-MAN, TM-UINone
REQ-GLOBALUI-002Display Application Version2TC-GLOBALUI-002, TC-GLOBALUI-0032/2 (100%)TM-UINone
REQ-GLOBALUI-003Communicate Session Termination Reason4TC-GLOBALUI-004, TC-GLOBALUI-0054/4 (100%)TM-UINone
REQ-GLOBALUI-004Provide Idle Timeout Warning5TC-GLOBALUI-006, TC-GLOBALUI-0075/5 (100%)TM-UINone
REQ-GLOBALUI-005Paginate Application Notifications6TC-GLOBALUI-008, TC-GLOBALUI-009, TC-GLOBALUI-0106/6 (100%)TM-UINone
REQ-GLOBALUI-006Display User Display Names4TC-GLOBALUI-011, TC-GLOBALUI-0124/4 (100%)TM-UINone
REQ-GLOBALUI-007Filter Sites by Cognito Group3TC-GLOBALUI-013, TC-GLOBALUI-0143/3 (100%)TM-HYBNone
REQ-GLOBALUI-008Display User Role Indicator3TC-GLOBALUI-015, TC-GLOBALUI-ROLE-CA, TC-GLOBALUI-ROLE-MGR, TC-GLOBALUI-ROLE-SR, TC-GLOBALUI-ROLE-JR, TC-GLOBALUI-ROLE-SA3/3 (100%)TM-UINone
REQ-GLOBALUI-009Provide Infinite Scrolling Toggle4TC-GLOBALUI-016, TC-GLOBALUI-0174/4 (100%)TM-HYBNone

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:

  1. Trigger system maintenance mode (deployment simulation)
  2. Attempt to access the application URL as an unauthenticated user
  3. Observe the displayed page
  4. 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:

  1. Log in as Super Admin user
  2. Navigate to any application page
  3. 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:

  1. Log in as Junior User
  2. Navigate to any application page
  3. Verify version number is not visible
  4. 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:

  1. Log in as any user
  2. Perform actions continuously until session timeout elapses
  3. Observe termination behavior
  4. 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:

  1. Log in as any user
  2. Remain inactive until idle timeout elapses (do not interact with application)
  3. Observe termination behavior
  4. 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:

  1. Log in as any user
  2. Remain inactive until warning is triggered
  3. Observe warning display
  4. Continue to remain inactive until countdown reaches zero
  5. 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:

  1. Log in as any user
  2. Remain inactive until warning is triggered
  3. Interact with the application before countdown ends
  4. Observe warning dismissal
  5. 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:

  1. Log in as user with 15 notifications
  2. Access the notifications display
  3. 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:

  1. Log in as user with 5 notifications
  2. Access the notifications display
  3. 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:

  1. Log in as user with 25 notifications
  2. Access the notifications display (10 shown initially)
  3. Verify load more option is available
  4. Select quantity of additional notifications to load (e.g., 10)
  5. Request additional notifications
  6. 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:

  1. Log in as user "jsmith" with display name "John Smith"
  2. Observe user identification in application header
  3. Navigate to any report screen (except Audit Report)
  4. 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:

  1. Log in as user "jsmith" with display name "John Smith"
  2. Perform an action that appears in Audit Report
  3. Export any file containing user identification
  4. Verify exported file content
  5. Navigate to Audit Report
  6. 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:

  1. Configure Site X to require Cognito group (API/Admin)
  2. Configure Site Y to not require Cognito group (API/Admin)
  3. Log in as User A (with Cognito group)
  4. Access site picker/site list
  5. 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:

  1. Configure Site X to require Cognito group (API/Admin)
  2. Configure Site Y to not require Cognito group (API/Admin)
  3. Log in as User B (without Cognito group)
  4. Access site picker/site list
  5. 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:

  1. Log in as Super Admin
  2. Observe role indicator adjacent to display name
  3. Interact with role indicator to access extended role information
  4. 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:

  1. Log in as any user
  2. Observe current toggle state
  3. Navigate to page with scrollable content
  4. Observe current scrolling behavior
  5. Toggle infinite scrolling setting
  6. Verify toggle control reflects new state
  7. Navigate to same scrollable content page
  8. 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:

  1. Log in as test user
  2. Set infinite scrolling to disabled
  3. Verify toggle reflects disabled state
  4. Log out
  5. Log back in as same user
  6. 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:

  1. Log in as Junior user
  2. Navigate to the application home page
  3. 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:

  1. Log in as Senior user
  2. Navigate to the application home page
  3. 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:

  1. Log in as Super Admin user
  2. Navigate to the application home page
  3. 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:

  1. Log in as Client Admin user
  2. Navigate to the application home page
  3. 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:

  1. Log in as Client Admin user
  2. Navigate to any application page
  3. 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:

  1. Log in as Manager user
  2. Navigate to any application page
  3. 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:

  1. Log in as Senior user
  2. Navigate to any application page
  3. 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:

  1. Log in as Junior user
  2. Navigate to any application page
  3. 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:

  1. Log in as Super Admin user
  2. Navigate to any application page
  3. 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 CategoryCountCoveredNotes
Access Control/Visibility77Role-based visibility, site filtering
User Communication88Messages, warnings, notifications
Display/Rendering1010Version, names, indicators, counts
Interaction/Behavior66Timeout, toggle, navigation
Persistence/Configuration33Session state, preference storage

Traceability to Existing Tests

Test CaseJira TestAutomation
TC-GLOBALUI-001BT-744Manual
TC-GLOBALUI-002, TC-GLOBALUI-003BT-713Selenium
TC-GLOBALUI-004BT-925Manual (session timeout env var)
TC-GLOBALUI-005BT-925Browser (Behat/Mink)
TC-GLOBALUI-006, TC-GLOBALUI-007PendingBrowser (Behat/Mink)
TC-GLOBALUI-008, TC-GLOBALUI-009, TC-GLOBALUI-010BT-3847Browser (Behat/Mink)
TC-GLOBALUI-011, TC-GLOBALUI-012BT-3856Selenium
TC-GLOBALUI-013, TC-GLOBALUI-014BT-3841Manual (Cognito SAML flow)
TC-GLOBALUI-015BT-4206Selenium
TC-GLOBALUI-016, TC-GLOBALUI-017BT-4773Behat
TC-GLOBALUI-020, TC-GLOBALUI-021, TC-GLOBALUI-022, TC-GLOBALUI-SIDEBAR-CABrowser (Behat/Mink)
TC-GLOBALUI-ROLE-CA, TC-GLOBALUI-ROLE-MGR, TC-GLOBALUI-ROLE-SR, TC-GLOBALUI-ROLE-JR, TC-GLOBALUI-ROLE-SABrowser (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