Skip to main content
Version: 3.0.0

STD: Upload Runs (UPLOAD)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/upload-runs.md Domain: UPLOAD


Overview

This document specifies tests for the Upload Runs domain, which covers run file uploads from thermocycler instruments, file validation, progress monitoring, duplicate detection, error handling, and bulk upload processing.

Domain Characteristics:

  • Primary function: Backend file processing and validation
  • Secondary function: UI progress display and interaction
  • Configuration dependency: Client file format support, upload date format

Test Method Rationale: Per Test Plan §3.2, Backend Services domains use TM-API as primary method. However, UPLOAD has significant UI elements (progress display, toast notifications, navigation), so TM-UI is used for user interaction flows while TM-API handles file processing and validation logic.

Test Case Convention: Steps describe logical actions, not UI mechanics. Use "Initiate file upload" or "Observe upload progress", not "Drag file to dropzone" or "Click the upload button". This ensures test intent survives UI redesigns.


Coverage Summary

REQ IDTitleACsTestsAC CoverageMethodGaps
REQ-UPLOAD-001Accept Run File Uploads8TC-UPLOAD-001, TC-UPLOAD-002, TC-UPLOAD-0038/8 (100%)TM-UINone
REQ-UPLOAD-002Validate Uploaded File Types7TC-UPLOAD-004, TC-UPLOAD-0057/7 (100%)TM-HYBNone
REQ-UPLOAD-003Display Upload Progress5TC-UPLOAD-006, TC-UPLOAD-0075/5 (100%)TM-UINone
REQ-UPLOAD-004Navigate to Uploaded File3TC-UPLOAD-0083/3 (100%)TM-UINone
REQ-UPLOAD-005Display Upload Errors8TC-UPLOAD-009, TC-UPLOAD-010, TC-UPLOAD-0118/8 (100%)TM-UINone
REQ-UPLOAD-006Cancel Upload in Progress4TC-UPLOAD-0124/4 (100%)TM-UINone
REQ-UPLOAD-007Handle Bulk Uploads7TC-UPLOAD-013, TC-UPLOAD-014, TC-UPLOAD-0157/7 (100%)TM-UINone

Totals: 7 REQs, 42 ACs, 15 Test Cases, 100% Coverage


Test Cases

TC-UPLOAD-001: Authorized user file upload succeeds

Verifies: REQ-UPLOAD-001 (AC1, AC2, AC3)

Method: TM-UI

Priority: Critical

Preconditions:

  • User logged in with authorized role (Junior User, Senior User, or Super-Admin)
  • Test file available in supported format (.sds, .pcrd, or .eds)

Test Data:

  • Valid .sds run file from thermocycler instrument

Steps:

  1. Log in as Junior User
  2. Initiate file upload with valid run file
  3. Observe system response during upload
  4. Wait for upload completion

Expected Results:

  • AC1: System accepts file upload initiated by user
  • AC2: System provides confirmation when upload begins
  • AC3: System provides confirmation when upload completes successfully

Automation Status: Automated

Deviation: AC3 (upload completion confirmation) requires S3/Vapor which is unavailable in the test environment. AC1 and AC2 are fully verified via browser tests (role access, file input presence, preparation notification).

Jira: BT-831


TC-UPLOAD-002: Unauthorized role upload rejection

Verifies: REQ-UPLOAD-001 (AC4, AC5, Error-1)

Method: TM-UI

Priority: Critical

Preconditions:

  • User logged in with restricted role (Client-Admin or Manager)
  • Test file available

Test Data:

  • Valid .sds run file
  • Test with both Client-Admin and Manager roles

Steps:

  1. Log in as Client-Admin
  2. Attempt to initiate file upload
  3. Observe system response
  4. Repeat with Manager role

Expected Results:

  • AC4: System restricts upload capability to Junior User, Senior User, and Super-Admin roles
  • AC5: System rejects upload attempts from Client-Admin and Manager roles
  • Error-1: Unauthorized role attempt displays error message

Automation Status: Automated

Jira: BT-831


TC-UPLOAD-003: Upload methods availability

Verifies: REQ-UPLOAD-001 (AC6, AC7)

Method: TM-UI

Priority: High

Preconditions:

  • User logged in with authorized role
  • Multiple application screens available for testing

Test Data:

  • Valid run file

Steps:

  1. From Run Files page, verify upload via dedicated Import Files function is available
  2. From different application screen, verify drag-and-drop upload is available
  3. Execute upload using drag-and-drop method
  4. Execute upload using Import Files function

Expected Results:

  • AC6: System accepts uploads from any screen via drag-and-drop method
  • AC7: System accepts uploads via dedicated Import Files function

Automation Status: Automated

Jira: BT-3035


TC-UPLOAD-004: File type validation - supported formats

Verifies: REQ-UPLOAD-002 (AC1, AC2, AC5, AC6)

Method: TM-HYB (API for config, UI for upload)

Priority: Critical

Preconditions:

  • Client configuration specifies supported file formats
  • Test files available in each supported format

Test Data:

  • File: test.sds (valid SDS format)
  • File: test.pcrd (valid PCRD format)
  • File: test.eds (valid EDS format)

Steps:

  1. Verify client configuration includes .sds, .pcrd, .eds formats
  2. Upload test.sds file
  3. Verify acceptance
  4. Upload test.pcrd file
  5. Verify acceptance
  6. Upload test.eds file
  7. Verify acceptance

Expected Results:

  • AC1: System detects file type before processing
  • AC2: System accepts files matching configured supported formats
  • AC5: System supports .sds, .pcrd, and .eds file formats per client configuration
  • AC6: File format support determined by Client Configuration

Automation Status: Automated

Jira: BT-2574


TC-UPLOAD-005: File type validation - unsupported formats

Verifies: REQ-UPLOAD-002 (AC3, AC4, Error-1)

Method: TM-UI

Priority: Critical

Preconditions:

  • Client configuration does not include test file format
  • Test file in unsupported format available

Test Data:

  • File: test.pdf (unsupported format)
  • File: test.xlsx (unsupported format)

Steps:

  1. Attempt to upload test.pdf
  2. Observe system response
  3. Verify file not processed
  4. Attempt to upload test.xlsx
  5. Observe system response

Expected Results:

  • AC3: System rejects files not matching configured supported formats
  • AC4: System provides error feedback for rejected files
  • Error-1: Invalid file type displays error message

Automation Status: Automated

Deviation: Client-side validation is verified via the HTML accept attribute on the file input (.sds,.ixo,.pcrd,.eds). Server-side rejection feedback (AC4, Error-1) requires S3/Vapor file upload which is unavailable in the test environment; the accept attribute prevents unsupported file selection in the browser file picker.

Jira: BT-2574


TC-UPLOAD-006: Upload progress display

Verifies: REQ-UPLOAD-003 (AC1, AC2, AC3)

Method: TM-UI

Priority: High

Preconditions:

  • User logged in with authorized role
  • Run file large enough to observe progress updates

Test Data:

  • Valid run file of sufficient size to observe progress

Steps:

  1. Initiate file upload
  2. Observe progress display during upload
  3. Note progress updates
  4. Wait for completion
  5. Observe final status

Expected Results:

  • AC1: System displays upload progress as percentage
  • AC2: System updates progress in real-time during upload
  • AC3: System indicates upload status (in progress, complete, error)

Automation Status: Automated

Jira: [Pending]


TC-UPLOAD-007: Upload timestamp display

Verifies: REQ-UPLOAD-003 (AC4, AC5)

Method: TM-UI

Priority: Medium

Preconditions:

  • At least one completed upload exists

Steps:

  1. Navigate to upload history view
  2. Locate completed upload record
  3. Observe timestamp display

Expected Results:

  • AC4: System displays upload timestamp for completed uploads
  • AC5: Upload timestamps displayed in DD-MMM-YY format (e.g., "25-Jan-26")

Automation Status: Automated

Jira: BT-3019


TC-UPLOAD-008: Navigate to uploaded file

Verifies: REQ-UPLOAD-004 (AC1, AC2, AC3)

Method: TM-UI

Priority: High

Preconditions:

  • Run file has been successfully uploaded (100% complete)

Test Data:

  • Completed upload record

Steps:

  1. Locate successfully uploaded file in upload display
  2. Select navigation option to view file
  3. Observe destination
  4. Verify file content displayed

Expected Results:

  • AC1: System provides navigation to view successfully uploaded files
  • AC2: Navigation available only for files that completed upload successfully
  • AC3: Navigation directs users to Runfile Report for selected file

Automation Status: Automated

Deviation: AC1/AC2 verified via cache-seeded IMPORTED vs PARSE_ERROR entries (IMPORTED shows "Jump to run" button, failed entries do not). AC3 (actual navigation to Runfile Report) requires a real run_id linked to the import progress entry; verified structurally via status-conditional button rendering.

Jira: [Pending]


TC-UPLOAD-009: Upload error indication

Verifies: REQ-UPLOAD-005 (AC1, AC2, AC3, AC7)

Method: TM-UI

Priority: High

Preconditions:

  • Ability to trigger upload failure (e.g., corrupted file, missing configuration)

Test Data:

  • File that will fail processing (e.g., corrupted run file)

Steps:

  1. Initiate upload with file that will fail
  2. Observe system response
  3. Verify error indication
  4. Check Run Files list

Expected Results:

  • AC1: System indicates when upload has failed
  • AC2: System provides reason for upload failure
  • AC3: Failed uploads do not appear in Run Files list
  • AC7: Navigation to files with errors is prevented

Automation Status: Automated

Jira: BT-4600


TC-UPLOAD-010: Duplicate file detection

Verifies: REQ-UPLOAD-005 (AC4, AC5, Error-1)

Method: TM-UI

Priority: Critical

Preconditions:

  • Run file has been previously imported successfully

Test Data:

  • Previously imported run file (duplicate)

Steps:

  1. Note existing run file in system
  2. Initiate upload of same run file
  3. Observe upload progress
  4. Observe system response when duplicate detected

Expected Results:

  • AC4: System identifies duplicate file uploads
  • AC5: System detects duplicate files at approximately 20% of upload progress
  • Error-1: Duplicate file detected causes upload to stop and file marked as duplicate

Automation Status: Manual

Deviation: TM-MAN used. Duplicate detection occurs server-side during file processing, requiring a complete S3/Vapor upload flow which is unavailable in the test environment. The DUPLICATE status display is verified in cache-seeded scenarios (TC-UPLOAD-009).

Jira: BT-4600


TC-UPLOAD-011: Missing configuration failure

Verifies: REQ-UPLOAD-005 (AC6, Error-2)

Method: TM-UI

Priority: Medium

Preconditions:

  • Client configuration missing required element for processing
  • Run file that requires missing configuration

Test Data:

  • Run file requiring specific configuration element
  • Configuration with element removed or missing

Steps:

  1. Ensure required configuration element is missing
  2. Initiate upload of run file requiring that element
  3. Observe system response
  4. Verify failure reason displayed

Expected Results:

  • AC6: Navigation to files with errors prevented
  • Error-2: Missing configuration indicated with specific missing configuration causing failure

Automation Status: Manual

Jira: BT-4598

Deviation: TM-MAN used due to complex configuration manipulation required. Remediation: Consider API test for configuration validation paths.


TC-UPLOAD-012: Cancel upload in progress

Verifies: REQ-UPLOAD-006 (AC1, AC2, AC3, AC4)

Method: TM-UI

Priority: High

Preconditions:

  • User logged in with authorized role
  • Run file large enough to allow cancellation during upload

Test Data:

  • Large run file to provide cancellation window

Steps:

  1. Initiate file upload
  2. Observe progress begin
  3. Request upload cancellation while in progress
  4. Observe system response
  5. Verify file status

Expected Results:

  • AC1: System allows cancellation while upload is in progress
  • AC2: Cancellation stops upload immediately
  • AC3: Cancelled files are not imported to system
  • AC4: Cancelled files are removed from upload display

Automation Status: Manual

Deviation: TM-MAN used. Cancellation requires precise timing during an active S3/Vapor upload (must click cancel during the upload window). This is timing-sensitive and requires S3 infrastructure unavailable in the test environment.

Jira: [Pending]


TC-UPLOAD-013: Bulk upload - all valid files

Verifies: REQ-UPLOAD-007 (AC1, AC2, AC5)

Method: TM-UI

Priority: High

Preconditions:

  • Multiple valid run files available
  • User logged in with authorized role

Test Data:

  • File: run1.sds (valid)
  • File: run2.sds (valid)
  • File: run3.sds (valid)

Steps:

  1. Select multiple valid run files
  2. Initiate bulk upload
  3. Observe processing
  4. Verify all files imported

Expected Results:

  • AC1: System processes each file in bulk upload independently
  • AC2: Valid files imported regardless of other files in batch
  • AC5: System confirms success when all files are valid

Automation Status: Manual

Deviation: TM-MAN used. Bulk upload requires multiple complete S3/Vapor upload cycles which are unavailable in the test environment. The multiple attribute on the file input is verified in TC-UPLOAD-004 to confirm bulk selection capability.

Jira: BT-831


TC-UPLOAD-014: Bulk upload - all invalid files

Verifies: REQ-UPLOAD-007 (AC4, Error-2)

Method: TM-UI

Priority: High

Preconditions:

  • Multiple invalid run files available (unsupported format)

Test Data:

  • File: doc1.pdf (invalid)
  • File: doc2.xlsx (invalid)
  • File: doc3.txt (invalid)

Steps:

  1. Select multiple invalid files
  2. Initiate bulk upload
  3. Observe system response
  4. Verify no files imported

Expected Results:

  • AC4: System notifies users when all files are invalid
  • Error-2: All files invalid triggers rejection with error message displayed

Automation Status: Manual

Deviation: TM-MAN used. Bulk upload of invalid files requires S3/Vapor infrastructure to detect invalid formats server-side. The accept attribute provides client-side filtering verified in TC-UPLOAD-004.

Jira: BT-831


TC-UPLOAD-015: Bulk upload - mixed valid and invalid files

Verifies: REQ-UPLOAD-007 (AC1, AC2, AC3, Error-1)

Method: TM-UI

Priority: Critical

Preconditions:

  • Mix of valid and invalid files available

Test Data:

  • File: run1.sds (valid)
  • File: run2.sds (valid)
  • File: doc1.pdf (invalid)
  • File: doc2.txt (invalid)

Steps:

  1. Select mix of valid and invalid files
  2. Initiate bulk upload
  3. Observe system response
  4. Verify valid files imported
  5. Verify invalid files rejected
  6. Observe notification message

Expected Results:

  • AC1: System processes each file independently
  • AC2: Valid files imported regardless of invalid files in batch
  • AC3: System notifies users when some files are ignored
  • Error-1: System displays warning with list of ignored files

Automation Status: Manual

Deviation: TM-MAN used. Mixed-validity bulk upload requires completing S3/Vapor upload cycles and observing partial success/failure, which is unavailable in the test environment.

Jira: BT-831


Gap Analysis

No gaps identified. All 42 acceptance criteria have test coverage.

Coverage by AC Type

AC CategoryCountCoveredNotes
Upload Capability77Verified via TM-UI
Role Restrictions33Verified via TM-UI
File Validation77Verified via TM-HYB
Progress Display55Verified via TM-UI
Navigation44Verified via TM-UI
Error Handling88Verified via TM-UI
Bulk Processing88Verified via TM-UI

Traceability to Existing Tests

Test CaseJira TestAutomation
TC-UPLOAD-001BT-831Automated
TC-UPLOAD-002BT-831Automated
TC-UPLOAD-003BT-3035Automated
TC-UPLOAD-004BT-2574Automated
TC-UPLOAD-005BT-2574Automated
TC-UPLOAD-006PendingAutomated
TC-UPLOAD-007BT-3019Automated
TC-UPLOAD-008PendingAutomated
TC-UPLOAD-009BT-4600Automated
TC-UPLOAD-010BT-4600Manual
TC-UPLOAD-011BT-4598Manual
TC-UPLOAD-012PendingManual
TC-UPLOAD-013BT-831Manual
TC-UPLOAD-014BT-831Manual
TC-UPLOAD-015BT-831Manual

Notes

  • UPLOAD domain combines backend file processing with UI progress display
  • Duplicate detection occurs at approximately 20% progress; tests must account for this timing
  • Role restrictions apply uniformly across all upload methods (drag-and-drop and Import Files)
  • File format support is configuration-driven; tests must verify against actual client configuration
  • TC-UPLOAD-010, TC-UPLOAD-012, TC-UPLOAD-013, TC-UPLOAD-014, TC-UPLOAD-015 are manual due to S3/Vapor dependency (file upload requires cloud storage infrastructure unavailable in test environment)
  • TC-UPLOAD-011 is manual due to complex configuration manipulation required
  • RunFileImportProgress is stored in file cache (not database); tests use cache seeding via artisan tinker for display verification