STD: Calibration (CALIB)
Version: v3.1.0 Status: Draft SRS Source:
docusaurus/docs/srs/calibration.mdDomain: CALIB
Overview
This document specifies tests for the Calibration domain, which covers assay calibration lifecycle management within Config Mode including target calibration workflows, interactive chart visualization (2D/3D Plotly.js scatter plots), calibration record operations (create, activate, cancel, delete), observation exclusion, recalibration from historical data, and real-time status updates via WebSocket events.
Domain Characteristics:
- Primary function: Calibration lifecycle management (stateful: CALIBRATING, CALIBRATED, FAILED, CANCELLED)
- Secondary function: Interactive chart visualization (Plotly.js 2D/3D scatter plots with draggable DF boundaries)
- Tertiary function: Real-time updates (WebSocket events on
Run.Calibratechannel) - External integration: AWS Lambda for computation, S3 for BSON file storage
Test Method Rationale: Calibration is a mixed UI/backend domain. Chart visualization, draggable DF lines, and real-time WebSocket updates require TM-UI. Calibration job lifecycle operations (start, activate, cancel, delete) and notification delivery are testable via TM-API. Run selection modals and settings panels use TM-UI.
Test Case Convention: Steps describe logical actions, not UI mechanics. Use "Start calibration for target" or "Activate calibration record", not "Click the Calibrate button" or "Drag the DF line". This ensures test intent survives UI redesigns.
Coverage Summary
| REQ ID | Title | ACs | Tests | AC Coverage | Method | Gaps |
|---|---|---|---|---|---|---|
| REQ-CALIB-001 | Calibration Tab in Config Mode | 3 | TC-CALIB-001 | 3/3 (100%) | TM-UI | None |
| REQ-CALIB-002 | Target Selector Dropdown | 3 | TC-CALIB-002 | 3/3 (100%) | TM-UI | None |
| REQ-CALIB-003 | Targets Summary Widget | 4 | TC-CALIB-003 | 4/4 (100%) | TM-UI | None |
| REQ-CALIB-004 | Select Runs for Chart | 4 | TC-CALIB-004 | 4/4 (100%) | TM-UI | None |
| REQ-CALIB-005 | Select Runs for Calibration | 8 | TC-CALIB-005, TC-CALIB-006 | 8/8 (100%) | TM-API, TM-UI | None |
| REQ-CALIB-006 | Calibration Chart (2D/3D) | 4 | TC-CALIB-007 | 4/4 (100%) | TM-UI | None |
| REQ-CALIB-007 | Draggable DF Lines | 5 | TC-CALIB-008 | 5/5 (100%) | TM-UI | None |
| REQ-CALIB-008 | Exclude Observations | 3 | TC-CALIB-009 | 3/3 (100%) | TM-API, TM-UI | None |
| REQ-CALIB-009 | Chart Settings Panel | 6 | TC-CALIB-010 | 6/6 (100%) | TM-UI | None |
| REQ-CALIB-010 | Outdated Calibration Warning | 3 | TC-CALIB-011 | 3/3 (100%) | TM-UI | None |
| REQ-CALIB-011 | Calibrations Table | 6 | TC-CALIB-012 | 6/6 (100%) | TM-UI | None |
| REQ-CALIB-013 | Activate Calibration | 4 | TC-CALIB-013 | 4/4 (100%) | TM-API | None |
| REQ-CALIB-014 | Cancel Calibration | 4 | TC-CALIB-014 | 4/4 (100%) | TM-API | None |
| REQ-CALIB-015 | Delete Calibration Record | 4 | TC-CALIB-015 | 4/4 (100%) | TM-API | None |
| REQ-CALIB-016 | Load Historical Calibration | 3 | TC-CALIB-016 | 3/3 (100%) | TM-UI | None |
| REQ-CALIB-017 | WebSocket Real-Time Updates | 5 | TC-CALIB-017 | 5/5 (100%) | TM-UI | None |
| REQ-CALIB-018 | Failed Calibration Notification | 3 | TC-CALIB-018 | 3/3 (100%) | TM-API | None |
| REQ-CALIB-019 | Recalibration | 4 | TC-CALIB-019 | 4/4 (100%) | TM-API, TM-UI | None |
| REQ-CALIB-020 | Help Data Toggle | 3 | TC-CALIB-020 | 3/3 (100%) | TM-UI | None |
Totals: 19 REQs, 79 ACs, 20 Test Cases, 100% Coverage
Test Cases
TC-CALIB-001: Calibration tab access and navigation
Verifies: REQ-CALIB-001 (AC1-3: Tab Navigation)
Method: TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- User logged in with SUPER_ADMIN or CLIENT_CONFIG role
- Config Mode active with at least one mix selected
Steps:
- Navigate to Config Mode with a mix selected
- Observe the hierarchical tab list in the left panel
- Select the Calibration tab
- Observe the right panel content
Expected Results:
- AC1: "Calibration" appears as the last tab in the hierarchical tab list (top-level, no nesting)
- AC2: Calibration page content is displayed in the right (2/3) panel when the tab is selected
- AC3: Calibration tab content requires a mix to be selected before displaying
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-002: Target selector and warning display
Verifies: REQ-CALIB-002 (AC1-3: Target Selection)
Method: TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- User on the Calibration tab with a mix selected
- Mix has at least two targets configured
Steps:
- Observe the Calibration page with no target selected
- Verify warning message and button states
- Select a target from the dropdown
- Verify warning dismissal and button enablement
Expected Results:
- AC1: Target dropdown lists all targets from the currently selected mix(es)
- AC2: Yellow warning "Please select a target using the filter" displayed when no target is selected
- AC3: "Select runs for Generate chart" and "Select runs for Calibrate" buttons disabled when no target is selected
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-003: Targets Summary widget interaction
Verifies: REQ-CALIB-003 (AC1-4: Targets Summary)
Method: TM-UI
Priority: Medium
Version: @V3_1_0
Preconditions:
- User on the Calibration tab
- Multiple targets configured with varying calibration statuses (NON_CALIBRATED, CALIBRATING, CALIBRATED)
- At least one target has multiple calibration records
Steps:
- Click the "Targets Summary" tab button
- Observe the collapsible panel content
- Expand a target row to view individual calibration records
- Click a calibration record in the Targets Summary
Expected Results:
- AC1: "Targets Summary" tab button toggles a collapsible panel
- AC2: All site targets displayed with calibration status (NON_CALIBRATED, CALIBRATING, CALIBRATED)
- AC3: Expanded target row shows individual calibration records with active status, name, completion date, and status badge
- AC4: Clicking a calibration record in the Targets Summary loads that calibration's observation data into the chart
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-004: Select runs for chart generation
Verifies: REQ-CALIB-004 (AC1-4: Chart Run Selection)
Method: TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- Target selected from dropdown
- At least two calibrated runs exist for the selected target
Test Data:
- Target A with 3 calibrated runs (Run-1, Run-2, Run-3)
Steps:
- Click "Select runs for Generate chart"
- Observe the run selection modal
- Select specific runs and click "Generate chart"
- Verify chart renders observations from selected runs only
- Attempt to open the modal with no target selected
Expected Results:
- AC1: "Select runs for Generate chart" button opens a modal listing calibrated runs for the selected target
- AC2: Runs displayed with checkboxes for multi-selection
- AC3: Chart renders observations from only the selected runs when "Generate chart" is clicked
- AC4: Button disabled when no target is selected
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-005: Start new calibration process (UI flow)
Verifies: REQ-CALIB-005 (AC1-5: New Calibration Modal and UI)
Method: TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- Target selected from dropdown
- At least one calibratable (not-yet-calibrated) run exists for the selected target
Test Data:
- Target A with 2 uncalibrated runs
- Expected auto-generated name format:
calibration_YYYY_MM_DD_hh_mm_ss
Steps:
- Click "Select runs for Calibrate"
- Observe the calibration modal contents
- Verify calibration name field is auto-generated and editable
- Select runs and configure options
- Click "Calibrate" and confirm in the confirmation dialog
- Verify toast notification and new table entry
Expected Results:
- AC1: "Select runs for Calibrate" button opens a modal listing calibratable runs with checkboxes
- AC2: Calibration name field auto-generated as
calibration_YYYY_MM_DD_hh_mm_ss, editable, max 255 characters - AC3: "Use machine results to calibrate" checkbox option available
- AC4: "Hide invert sigmoid" checkbox option available
- AC5: Confirmation dialog displayed before dispatching calibration job
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-006: Start calibration job (API dispatch)
Verifies: REQ-CALIB-005 (AC5-8: Job Dispatch and Button State)
Method: TM-API
Priority: High
Version: @V3_1_0
Preconditions:
- Target selected
- At least one calibratable run available
- AWS OOS API configured and accessible
Test Data:
| Field | Value |
|---|---|
| target_id | Valid target UUID |
| run_ids | Array of calibratable run UUIDs |
| name | calibration_2026_03_08_12_00_00 |
| use_machine_results | false |
| hide_invert_sigmoid | false |
Steps:
- POST to
/api/calibrateable-runswith valid calibration parameters - Verify response includes toast message
- Verify new calibration record created with status CALIBRATING
- Verify "Select runs for Calibrate" button state when no target is selected
Expected Results:
- AC5: Confirmation dialog required before dispatch (tested in TC-CALIB-005)
- AC6: Toast notification "calibration started" displayed upon successful dispatch
- AC7: New calibration record created with status CALIBRATING in the Calibrations table
- AC8: "Select runs for Calibrate" button disabled when no target is selected
Automation Status: Planned (Behat API)
Jira: BT-2456
TC-CALIB-007: Calibration chart rendering (2D and 3D)
Verifies: REQ-CALIB-006 (AC1-4: Chart Display)
Method: TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- Target selected with calibrated runs containing observations
- Chart generation initiated from selected runs
Steps:
- Generate chart from selected calibrated runs
- Verify 2D scatter plot is the default rendering mode
- Toggle to 3D mode and verify 3D scatter plot visualization
- Select a target with no calibrated runs and verify empty state message
- Click a data point to verify interactive selection support
Expected Results:
- AC1: 2D scatter plot rendered as default chart mode showing calibration observations
- AC2: 3D scatter plot visualization available via toggle
- AC3: Yellow message "No calibrated runs for selected target" displayed when no calibrated runs exist
- AC4: Interactive data point selection supported for observation exclusion (see TC-CALIB-009)
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-008: Draggable DF lines and positivity range persistence
Verifies: REQ-CALIB-007 (AC1-5: DF Line Interaction)
Method: TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- 2D chart rendered with calibration observations
- Target has existing min_df and max_df values
Test Data:
| Field | Initial Value | Adjusted Value |
|---|---|---|
| min_df | 0.5 | 0.3 |
| max_df | 2.0 | 2.5 |
Steps:
- Observe draggable min_df and max_df lines on the 2D chart
- Drag the min_df line to a new position
- Verify save/discard control (PositivityChangeHandler) appears
- Click "Persist" and verify target update via PUT
targets/{target_id} - Drag a DF line and click "Discard" to verify revert
- Switch to 3D mode and verify DF lines are not draggable
Expected Results:
- AC1: Two vertical draggable lines representing min_df and max_df displayed on the 2D chart
- AC2: Save/discard control (PositivityChangeHandler) appears when DF values changed by dragging
- AC3: Min/max DF changes persisted to target via PUT API when "Persist" is clicked
- AC4: DF changes discarded and lines reverted to original positions when "Discard" is clicked
- AC5: Message "To change Positivity Range switch to 2D mode" displayed in 3D mode; DF lines not draggable
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-009: Observation exclusion workflow
Verifies: REQ-CALIB-008 (AC1-3: Observation Exclusion)
Method: TM-API, TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- Chart rendered with calibration observations
- At least one observation data point visible on the chart
Steps:
- Click a data point on the calibration chart
- Verify confirmation dialog appears
- Confirm the exclusion
- Verify observation removed from chart and marked excluded in database
- Trigger recalibration and verify excluded observation is not included
- Start calibration with "Hide invert sigmoid" enabled and verify inverted sigmoid observations excluded automatically
Expected Results:
- AC1: Confirmation dialog "Do you need to remove this observation from Calibration?" displayed when data point is clicked
- AC2: Excluded observation removed from chart visualization and from subsequent recalibration calculations upon confirmation
- AC3: Observations with inverted sigmoid curves automatically excluded when "Hide invert sigmoid" is enabled
Automation Status: Planned (Behat Browser + API)
Jira: BT-2456
TC-CALIB-010: Chart settings panel configuration
Verifies: REQ-CALIB-009 (AC1-6: Chart Settings)
Method: TM-UI
Priority: Medium
Version: @V3_1_0
Preconditions:
- Chart rendered with calibration observations in 2D mode
Test Data:
Axis options: Positivity (f_x), PcrAi CT, F[y], PcrAi RFU, Machine RFU, Machine CT, F[z], DF
Steps:
- Click the cog icon button on the chart to open settings panel
- Verify X axis and Y axis selectors displayed
- Change X axis to "PcrAi CT" and verify chart re-renders
- Verify "PcrAi CT" is unavailable in Y axis selector (unique axis constraint)
- Switch to 3D mode and verify Z axis selector appears
- Verify Run Highlighter, CLS Discrepancy toggle, and Chart Legend controls
Expected Results:
- AC1: X axis and Y axis representation selectors provided
- AC2: Z axis representation selector provided when in 3D mode
- AC3: Each axis option can only be used once (selecting for one axis removes from other axis selectors)
- AC4: Axis options supported: Positivity (f_x), PcrAi CT, F[y], PcrAi RFU, Machine RFU, Machine CT, F[z], DF
- AC5: Run Highlighter, CLS Discrepancy toggle, and Chart Legend controls available
- AC6: Chart re-renders when any setting is changed
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-011: Outdated calibration warning banner
Verifies: REQ-CALIB-010 (AC1-3: Outdated Warning)
Method: TM-UI
Priority: Medium
Version: @V3_1_0
Preconditions:
- Target has at least three calibration records: one active, one latest (most recent), and one older historical record
- The active calibration is not the latest calibration
Steps:
- Select an older (non-active, non-latest) calibration from the Calibrations table
- Verify yellow warning banner appears
- Click "Show up-to-date calibration" and verify chart resets to latest calibration data
- Re-select the older calibration and click "Recalibrate"
- Verify recalibration modal opens in recalibration mode (see TC-CALIB-019)
Expected Results:
- AC1: Yellow banner "Outdated calibration data is showing !" displayed when selected calibration is neither the active nor the latest calibration
- AC2: "Show up-to-date calibration" button resets chart to display the latest calibration data
- AC3: "Recalibrate" button opens the calibration modal in recalibration mode (REQ-CALIB-019)
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-012: Calibrations table display and status badges
Verifies: REQ-CALIB-011 (AC1-6: Table Display and Status)
Method: TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- Target selected with multiple calibration records in various statuses
Test Data:
| Record | Status | Active | Created At |
|---|---|---|---|
| Calibration A | CALIBRATED | Yes | 2026-03-01 |
| Calibration B | CALIBRATING | No | 2026-03-05 |
| Calibration C | FAILED | No | 2026-03-04 |
| Calibration D | CANCELLED | No | 2026-03-03 |
Steps:
- View the Calibrations table for a target with records in all four statuses
- Verify column display and sort order
- Verify status badge colors
- Select a target with no calibration records and verify empty state
Expected Results:
- AC1: All calibration records displayed for the selected target, ordered newest first (by created_at descending)
- AC2: Columns displayed: Active (checkmark icon), Calibration Name, Calibrated At, Status (color-coded dot + label), Actions
- AC3: CALIBRATING status displayed with blue dot indicator
- AC4: CALIBRATED status displayed with green dot indicator; FAILED with red dot; CANCELLED with yellow dot
- AC5: "No records available." displayed when no calibration records exist
- AC6: Table title "CALIBRATIONS" displayed (uppercase, centered)
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-013: Activate a completed calibration
Verifies: REQ-CALIB-013 (AC1-4: Activation)
Method: TM-API
Priority: High
Version: @V3_1_0
Preconditions:
- At least two calibration records for the same target with status CALIBRATED
- One calibration currently active
- AWS S3 configured
Test Data:
| Field | Value |
|---|---|
| calibration_id | UUID of CALIBRATED record |
| target_id | UUID of associated target |
Steps:
- POST to
/api/activate-calibrationwith calibration_id - Verify response indicates success
- Verify the selected calibration is now active
- Verify the previously active calibration lost its active status
- Verify target's
calibration_file_pathupdated to S3 URL
Expected Results:
- AC1: Activation triggered by clicking the active status icon on a CALIBRATED row
- AC2: Selected calibration marked as active; all other calibrations for the target deactivated
- AC3: Calibration BSON file moved from local storage to S3 (s3-calibration disk, os/ folder); target's
calibration_file_pathupdated to the S3 URL - AC4: POST
activate-calibrationAPI endpoint invoked
Automation Status: Planned (Behat API)
Jira: BT-2456
TC-CALIB-014: Cancel an in-progress calibration
Verifies: REQ-CALIB-014 (AC1-4: Cancellation)
Method: TM-API
Priority: High
Version: @V3_1_0
Preconditions:
- At least one calibration record with status CALIBRATING
- Calibration records in CALIBRATED, FAILED, and CANCELLED statuses also present
Steps:
- DELETE
/api/assay-calibration-processes/{processId}for a CALIBRATING record - Verify response indicates success
- Verify calibration status changed to CANCELLED
- Verify cancel button visibility rules for non-CALIBRATING statuses
Expected Results:
- AC1: Cancel (X) icon button displayed only on rows with status CALIBRATING
- AC2: Calibration process cancelled and status changed to CANCELLED upon clicking
- AC3: DELETE
assay-calibration-processes/{processId}API endpoint invoked - AC4: Cancel button hidden for calibrations with status CALIBRATED, FAILED, or CANCELLED
Automation Status: Planned (Behat API)
Jira: BT-2456
TC-CALIB-015: Delete a non-active calibration record
Verifies: REQ-CALIB-015 (AC1-4: Deletion)
Method: TM-API
Priority: High
Version: @V3_1_0
Preconditions:
- Calibration records present: one active, one CALIBRATING, one FAILED or CANCELLED
Steps:
- GET
/api/assay-calibration-removewith calibration_id for a non-active, non-in-progress record - Verify confirmation dialog "This will remove the calibration." with OK/Cancel displayed (TM-UI verification)
- Confirm deletion
- Verify calibration record soft-deleted and removed from table
- Attempt deletion of active calibration (expect button hidden)
- Attempt deletion of CALIBRATING record (expect button hidden)
Expected Results:
- AC1: Delete (trash) icon button displayed for non-active, non-in-progress calibration rows
- AC2: Confirmation dialog "This will remove the calibration." with OK/Cancel displayed before deletion
- AC3: Calibration record soft-deleted and removed from table upon confirmation
- AC4: Delete button hidden for active calibrations and in-progress calibrations
Automation Status: Planned (Behat API)
Jira: BT-2456
TC-CALIB-016: Load historical calibration data from table row
Verifies: REQ-CALIB-016 (AC1-3: Row Click Navigation)
Method: TM-UI
Priority: Medium
Version: @V3_1_0
Preconditions:
- Target selected with at least two calibration records with observation data
Steps:
- Click a calibration row in the Calibrations table
- Verify chart updates to display observation data from that calibration
- Verify the selected row is visually highlighted
- Click a different calibration row
- Verify chart updates to reflect the newly selected calibration's data
Expected Results:
- AC1: Chart updated to display observation data from the selected calibration when row is clicked
- AC2: Selected row visually highlighted in the table
- AC3: Chart updated when a different calibration row is selected
Automation Status: Planned (Behat Browser)
Jira: BT-2456
TC-CALIB-017: Real-time WebSocket calibration event handling
Verifies: REQ-CALIB-017 (AC1-5: WebSocket Events)
Method: TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- User on the Calibration tab with a target selected
- WebSocket connection established on
Run.Calibratechannel - Calibration job initiated (CALIBRATING status)
Steps:
- Trigger a calibration job and remain on the Calibration tab
- Wait for
AssayCalibrationStartedevent broadcast - Verify target statuses refresh without page reload
- Wait for
AssayCalibrationCompletedevent broadcast - Verify Calibrations table, chart data, and target details automatically refresh
- Trigger a calibration cancellation and verify
AssayCalibrationCanceledevent updates the table - Trigger a calibration update and verify
AssayCalibrationUpdatedevent refreshes statuses
Expected Results:
- AC1:
AssayCalibrationStartedevent received and target statuses refreshed - AC2:
AssayCalibrationCompletedevent received; target statuses, calibrated runs, calibratable runs, and target details refreshed - AC3:
AssayCalibrationUpdatedevent received and target statuses refreshed - AC4:
AssayCalibrationCanceledevent received and target statuses refreshed - AC5: Calibrations table and chart data automatically refreshed without page reload
Automation Status: Planned (Behat Browser -- requires Pusher/WebSocket)
Jira: BT-2456
TC-CALIB-018: Failed calibration notification delivery
Verifies: REQ-CALIB-018 (AC1-3: Failure Notification)
Method: TM-API
Priority: High
Version: @V3_1_0
Preconditions:
- User initiated a calibration that will fail (e.g., Lambda error or invalid observation data)
- Email configuration set to
MAIL_MAILER=logfor test environment
Steps:
- Trigger a calibration that fails (e.g., by providing invalid data to the OOS API)
- Wait for calibration job to complete with failure
- Verify in-app notification (AssayCalibrationFailed) created for the initiating user
- Verify email notification (AssayCalibrationFailedMail) sent to the initiating user
- Verify calibration record status updated to FAILED in the Calibrations table
Expected Results:
- AC1: In-app notification (AssayCalibrationFailed) sent when calibration process fails
- AC2: Email notification (AssayCalibrationFailedMail) sent to the user who initiated the calibration
- AC3: Calibration record status updated to FAILED in the Calibrations table
Automation Status: Planned (Behat API -- requires controlled failure scenario)
Jira: BT-2456
TC-CALIB-019: Recalibration from historical observations
Verifies: REQ-CALIB-019 (AC1-4: Recalibration)
Method: TM-API, TM-UI
Priority: High
Version: @V3_1_0
Preconditions:
- Target has a completed (CALIBRATED) calibration with observations
- Some observations have been excluded from the historical calibration
- An outdated calibration warning banner is displayed (see TC-CALIB-011)
Steps:
- Click "Recalibrate" button on the outdated calibration warning banner
- Verify calibration modal opens in recalibration mode with pre-populated observation IDs
- Verify excluded observations are not included in the pre-populated list
- Confirm recalibration
- Verify POST to
/api/recalibrate-runswith observation_ids array - Verify new calibration record created in the Calibrations table with status CALIBRATING
Expected Results:
- AC1: Recalibration triggered via "Recalibrate" button on the outdated calibration warning banner
- AC2: Calibration modal opened in recalibration mode, pre-populated with observation IDs from the selected calibration (excluding manually excluded observations)
- AC3: New calibration job dispatched via POST
recalibrate-runswith the observation_ids array - AC4: New calibration record created in the Calibrations table upon dispatch
Automation Status: Planned (Behat Browser + API)
Jira: BT-2456
TC-CALIB-020: Help Data toggle visibility
Verifies: REQ-CALIB-020 (AC1-3: Help Toggle)
Method: TM-UI
Priority: Low
Version: @V3_1_0
Preconditions:
- User on the Calibration tab
Steps:
- Enable the
help_itemsfeature flag - Navigate to the Calibration tab
- Verify Help Data button is visible
- Click the Help Data button and verify HelpWidget for "Assay Calibrations" is displayed
- Disable the
help_itemsfeature flag - Navigate to the Calibration tab
- Verify Help Data button is not visible
Expected Results:
- AC1: Help Data button (PushIconButton with help icon) displayed when
help_itemsfeature flag is enabled - AC2: HelpWidget component for "Assay Calibrations" page toggled on click
- AC3: Help Data button hidden when
help_itemsfeature flag is disabled
Automation Status: Planned (Behat Browser)
Jira: BT-2456
Traceability to Existing Tests
| Test Case | Jira Tests | Automation |
|---|---|---|
| TC-CALIB-001 through TC-CALIB-020 | BT-2456 | Planned (Behat Browser + API) |
Notes
- REQ-CALIB-012 (Calibration status badges) was folded into REQ-CALIB-011 as acceptance criteria per OQ-004 design decision. The ID gap is intentional and preserved for traceability.
- The Run View Calibration Chart requirements (REQ-RUNRPT-029 through REQ-RUNRPT-037) are tested in
std-runfile-report.md, not here, because they are Run View widgets with REQ-RUNRPT prefix. - WebSocket testing (TC-CALIB-017) requires Pusher credentials configured in the test environment. Tests may need controlled timing or polling to verify event-driven UI updates.
- Failed calibration testing (TC-CALIB-018) requires a mechanism to trigger a controlled failure in the AWS OOS API or Lambda. This may require mocking the external service.
- Draggable DF line testing (TC-CALIB-008) involves Plotly.js drag interactions which may require JavaScript evaluation in Behat Browser tests rather than standard Mink interactions.
- Calibration is a v3.1.0 feature. All test cases carry the
@V3_1_0version tag. - The SDS notes that there is no dedicated
AssayCalibrationFailedbroadcast event; failures are broadcast viaAssayCalibrationUpdated. TheAssayCalibrationFailednotification (REQ-CALIB-018) is an in-app notification, not a WebSocket event.