Skip to main content
Version: Next

STD: Calibration (CALIB)

Version: v3.1.0 Status: Draft SRS Source: docusaurus/docs/srs/calibration.md Domain: 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.Calibrate channel)
  • 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 IDTitleACsTestsAC CoverageMethodGaps
REQ-CALIB-001Calibration Tab in Config Mode3TC-CALIB-0013/3 (100%)TM-UINone
REQ-CALIB-002Target Selector Dropdown3TC-CALIB-0023/3 (100%)TM-UINone
REQ-CALIB-003Targets Summary Widget4TC-CALIB-0034/4 (100%)TM-UINone
REQ-CALIB-004Select Runs for Chart4TC-CALIB-0044/4 (100%)TM-UINone
REQ-CALIB-005Select Runs for Calibration8TC-CALIB-005, TC-CALIB-0068/8 (100%)TM-API, TM-UINone
REQ-CALIB-006Calibration Chart (2D/3D)4TC-CALIB-0074/4 (100%)TM-UINone
REQ-CALIB-007Draggable DF Lines5TC-CALIB-0085/5 (100%)TM-UINone
REQ-CALIB-008Exclude Observations3TC-CALIB-0093/3 (100%)TM-API, TM-UINone
REQ-CALIB-009Chart Settings Panel6TC-CALIB-0106/6 (100%)TM-UINone
REQ-CALIB-010Outdated Calibration Warning3TC-CALIB-0113/3 (100%)TM-UINone
REQ-CALIB-011Calibrations Table6TC-CALIB-0126/6 (100%)TM-UINone
REQ-CALIB-013Activate Calibration4TC-CALIB-0134/4 (100%)TM-APINone
REQ-CALIB-014Cancel Calibration4TC-CALIB-0144/4 (100%)TM-APINone
REQ-CALIB-015Delete Calibration Record4TC-CALIB-0154/4 (100%)TM-APINone
REQ-CALIB-016Load Historical Calibration3TC-CALIB-0163/3 (100%)TM-UINone
REQ-CALIB-017WebSocket Real-Time Updates5TC-CALIB-0175/5 (100%)TM-UINone
REQ-CALIB-018Failed Calibration Notification3TC-CALIB-0183/3 (100%)TM-APINone
REQ-CALIB-019Recalibration4TC-CALIB-0194/4 (100%)TM-API, TM-UINone
REQ-CALIB-020Help Data Toggle3TC-CALIB-0203/3 (100%)TM-UINone

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:

  1. Navigate to Config Mode with a mix selected
  2. Observe the hierarchical tab list in the left panel
  3. Select the Calibration tab
  4. 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:

  1. Observe the Calibration page with no target selected
  2. Verify warning message and button states
  3. Select a target from the dropdown
  4. 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:

  1. Click the "Targets Summary" tab button
  2. Observe the collapsible panel content
  3. Expand a target row to view individual calibration records
  4. 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:

  1. Click "Select runs for Generate chart"
  2. Observe the run selection modal
  3. Select specific runs and click "Generate chart"
  4. Verify chart renders observations from selected runs only
  5. 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:

  1. Click "Select runs for Calibrate"
  2. Observe the calibration modal contents
  3. Verify calibration name field is auto-generated and editable
  4. Select runs and configure options
  5. Click "Calibrate" and confirm in the confirmation dialog
  6. 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:

FieldValue
target_idValid target UUID
run_idsArray of calibratable run UUIDs
namecalibration_2026_03_08_12_00_00
use_machine_resultsfalse
hide_invert_sigmoidfalse

Steps:

  1. POST to /api/calibrateable-runs with valid calibration parameters
  2. Verify response includes toast message
  3. Verify new calibration record created with status CALIBRATING
  4. 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:

  1. Generate chart from selected calibrated runs
  2. Verify 2D scatter plot is the default rendering mode
  3. Toggle to 3D mode and verify 3D scatter plot visualization
  4. Select a target with no calibrated runs and verify empty state message
  5. 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:

FieldInitial ValueAdjusted Value
min_df0.50.3
max_df2.02.5

Steps:

  1. Observe draggable min_df and max_df lines on the 2D chart
  2. Drag the min_df line to a new position
  3. Verify save/discard control (PositivityChangeHandler) appears
  4. Click "Persist" and verify target update via PUT targets/{target_id}
  5. Drag a DF line and click "Discard" to verify revert
  6. 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:

  1. Click a data point on the calibration chart
  2. Verify confirmation dialog appears
  3. Confirm the exclusion
  4. Verify observation removed from chart and marked excluded in database
  5. Trigger recalibration and verify excluded observation is not included
  6. 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:

  1. Click the cog icon button on the chart to open settings panel
  2. Verify X axis and Y axis selectors displayed
  3. Change X axis to "PcrAi CT" and verify chart re-renders
  4. Verify "PcrAi CT" is unavailable in Y axis selector (unique axis constraint)
  5. Switch to 3D mode and verify Z axis selector appears
  6. 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:

  1. Select an older (non-active, non-latest) calibration from the Calibrations table
  2. Verify yellow warning banner appears
  3. Click "Show up-to-date calibration" and verify chart resets to latest calibration data
  4. Re-select the older calibration and click "Recalibrate"
  5. 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:

RecordStatusActiveCreated At
Calibration ACALIBRATEDYes2026-03-01
Calibration BCALIBRATINGNo2026-03-05
Calibration CFAILEDNo2026-03-04
Calibration DCANCELLEDNo2026-03-03

Steps:

  1. View the Calibrations table for a target with records in all four statuses
  2. Verify column display and sort order
  3. Verify status badge colors
  4. 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:

FieldValue
calibration_idUUID of CALIBRATED record
target_idUUID of associated target

Steps:

  1. POST to /api/activate-calibration with calibration_id
  2. Verify response indicates success
  3. Verify the selected calibration is now active
  4. Verify the previously active calibration lost its active status
  5. Verify target's calibration_file_path updated 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_path updated to the S3 URL
  • AC4: POST activate-calibration API 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:

  1. DELETE /api/assay-calibration-processes/{processId} for a CALIBRATING record
  2. Verify response indicates success
  3. Verify calibration status changed to CANCELLED
  4. 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:

  1. GET /api/assay-calibration-remove with calibration_id for a non-active, non-in-progress record
  2. Verify confirmation dialog "This will remove the calibration." with OK/Cancel displayed (TM-UI verification)
  3. Confirm deletion
  4. Verify calibration record soft-deleted and removed from table
  5. Attempt deletion of active calibration (expect button hidden)
  6. 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:

  1. Click a calibration row in the Calibrations table
  2. Verify chart updates to display observation data from that calibration
  3. Verify the selected row is visually highlighted
  4. Click a different calibration row
  5. 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.Calibrate channel
  • Calibration job initiated (CALIBRATING status)

Steps:

  1. Trigger a calibration job and remain on the Calibration tab
  2. Wait for AssayCalibrationStarted event broadcast
  3. Verify target statuses refresh without page reload
  4. Wait for AssayCalibrationCompleted event broadcast
  5. Verify Calibrations table, chart data, and target details automatically refresh
  6. Trigger a calibration cancellation and verify AssayCalibrationCanceled event updates the table
  7. Trigger a calibration update and verify AssayCalibrationUpdated event refreshes statuses

Expected Results:

  • AC1: AssayCalibrationStarted event received and target statuses refreshed
  • AC2: AssayCalibrationCompleted event received; target statuses, calibrated runs, calibratable runs, and target details refreshed
  • AC3: AssayCalibrationUpdated event received and target statuses refreshed
  • AC4: AssayCalibrationCanceled event 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=log for test environment

Steps:

  1. Trigger a calibration that fails (e.g., by providing invalid data to the OOS API)
  2. Wait for calibration job to complete with failure
  3. Verify in-app notification (AssayCalibrationFailed) created for the initiating user
  4. Verify email notification (AssayCalibrationFailedMail) sent to the initiating user
  5. 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:

  1. Click "Recalibrate" button on the outdated calibration warning banner
  2. Verify calibration modal opens in recalibration mode with pre-populated observation IDs
  3. Verify excluded observations are not included in the pre-populated list
  4. Confirm recalibration
  5. Verify POST to /api/recalibrate-runs with observation_ids array
  6. 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-runs with 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:

  1. Enable the help_items feature flag
  2. Navigate to the Calibration tab
  3. Verify Help Data button is visible
  4. Click the Help Data button and verify HelpWidget for "Assay Calibrations" is displayed
  5. Disable the help_items feature flag
  6. Navigate to the Calibration tab
  7. Verify Help Data button is not visible

Expected Results:

  • AC1: Help Data button (PushIconButton with help icon) displayed when help_items feature flag is enabled
  • AC2: HelpWidget component for "Assay Calibrations" page toggled on click
  • AC3: Help Data button hidden when help_items feature flag is disabled

Automation Status: Planned (Behat Browser)

Jira: BT-2456


Traceability to Existing Tests

Test CaseJira TestsAutomation
TC-CALIB-001 through TC-CALIB-020BT-2456Planned (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_0 version tag.
  • The SDS notes that there is no dedicated AssayCalibrationFailed broadcast event; failures are broadcast via AssayCalibrationUpdated. The AssayCalibrationFailed notification (REQ-CALIB-018) is an in-app notification, not a WebSocket event.