Skip to main content
Version: 3.0.0

STD: Client Configuration (CLIENTCFG)

Version: v1.0.0 Status: Draft SRS Source: docusaurus/docs/srs/client-config.md Domain: CLIENTCFG


Overview

This document specifies tests for the Client Configuration domain, which covers system-wide configuration settings and feature toggles that control application behavior across all functional areas.

Domain Characteristics:

  • Primary function: Configuration CRUD operations (view, edit, persist)
  • Secondary function: File I/O operations (import/export)
  • Authorization: Super User role required for modifications
  • System impact: Changes apply globally (all users, all sessions)

Test Method Rationale:

Per Test Plan §3.3, Configuration domains use TM-API as primary method with TM-UI secondary. CLIENTCFG is predominantly backend-driven:

  • Configuration persistence and validation are API operations
  • Import/export are file I/O operations testable without UI
  • Feature toggle effects are verifiable via API responses
  • Constraint enforcement (e.g., Westgard ordering) is backend logic

TM-UI is used only where user interaction flow verification is essential.

Test Case Convention:

Steps describe logical actions, not UI mechanics. Use "Load configuration settings" or "Save configuration changes", not "Click the Save button" or "Select dropdown option X". This ensures test intent survives UI redesigns.


Coverage Summary

REQ IDTitleACsTestsAC CoverageMethodGaps
REQ-CLIENTCFG-001View and Edit Client Configuration Settings11TC-CLIENTCFG-001 through TC-CLIENTCFG-00711/11 (100%)TM-API, TM-UINone
REQ-CLIENTCFG-002Export Client Configuration4TC-CLIENTCFG-008, TC-CLIENTCFG-0094/4 (100%)TM-APINone
REQ-CLIENTCFG-003Import Client Configuration9TC-CLIENTCFG-010 through TC-CLIENTCFG-0139/9 (100%)TM-APINone

Totals: 3 REQs, 24 ACs, 13 Test Cases, 100% Coverage


Test Cases

TC-CLIENTCFG-001: Configuration settings display and organization

Verifies: REQ-CLIENTCFG-001 (AC-Display-1, AC-Display-2, AC-Display-3)

Method: TM-UI

Priority: High

Preconditions:

  • User logged in with Super User role
  • Client configuration has settings of various types (toggle, dropdown, multiselect)

Test Data:

  • Configuration with: boolean setting (fallback_shared_controls_enabled), dropdown setting (lims_export_location), multiselect setting (allowed_accession_characters)

Steps:

  1. Navigate to Client Configuration screen
  2. Observe settings display and organization

Expected Results:

  • AC-Display-1: All available configuration settings are displayed organized by category (Login/User Management, Import/Data, Export, Display, Edit/Manage Results, Westgard)
  • AC-Display-2: Toggle-type settings display as enable/disable controls
  • AC-Display-3: Selection-type settings display as dropdown/choice lists

Automation Status: Automated

Jira: Derived from SRS Trace (Items 1.1, 2.1, 3.1, 4.1, 5.1, 6.1)


TC-CLIENTCFG-002: Configuration value validation

Verifies: REQ-CLIENTCFG-001 (AC-Validation-1, AC-Validation-2, AC-ErrorHandling-1)

Method: TM-API

Priority: High

Preconditions:

  • Super User authenticated via API
  • Configuration endpoint accessible

Test Data:

  • Valid dropdown value: lims_export_location = "DOWNLOAD"
  • Invalid dropdown value: lims_export_location = "INVALID_OPTION"

Steps:

  1. Submit configuration update with valid option value
  2. Verify update accepted
  3. Submit configuration update with invalid option value
  4. Observe validation response

Expected Results:

  • AC-Validation-1: Valid setting values accepted against defined option constraints
  • AC-Validation-2: Invalid setting values outside defined option sets are rejected
  • AC-ErrorHandling-1: Validation failure returns error message identifying the invalid setting and constraint

Automation Status: Automated

Jira: Derived from SRS Trace (Items 1.5, 1.6)


TC-CLIENTCFG-003: Configuration persistence

Verifies: REQ-CLIENTCFG-001 (AC-Persistence-1, AC-ErrorHandling-2)

Method: TM-API

Priority: Critical

Preconditions:

  • Super User authenticated
  • Known initial configuration state

Test Data:

  • Toggle setting: include_passive_targets_in_count = true
  • Export setting: export_quant_wells_separate_csv = true

Steps:

  1. Retrieve current configuration values
  2. Update multiple settings via save operation
  3. Retrieve configuration again
  4. Verify persisted values match submitted values

Expected Results:

  • AC-Persistence-1: Configuration changes persist when user confirms save operation
  • (Negative test) AC-ErrorHandling-2: On save failure, error message displayed and unsaved changes retained in session

Automation Status: Automated

Jira: Derived from SRS Trace (Item 7.1)


TC-CLIENTCFG-004: Feature toggle system-wide application

Verifies: REQ-CLIENTCFG-001 (AC-FeatureToggle-1)

Method: TM-API

Priority: High

Preconditions:

  • Super User authenticated
  • Second user (Junior User) authenticated in separate session

Test Data:

  • Feature toggle: help_items = false (hide context sensitive help)

Steps:

  1. As Super User, set feature toggle help_items = false
  2. Save configuration
  3. As Junior User, request feature flags via API
  4. Verify feature flag state reflects Super User's change

Expected Results:

  • AC-FeatureToggle-1: Feature visibility toggle changes apply to all users, not just the configuring user

Automation Status: Automated

Jira: Source: CR 2.17.0 Feature Visibility Toggles


TC-CLIENTCFG-005: Westgard ordering constraint enforcement

Verifies: REQ-CLIENTCFG-001 (AC-Constraint-1, AC-ErrorHandling-3)

Method: TM-API

Priority: High

Preconditions:

  • Super User authenticated
  • "Inherit Run Date" setting is enabled

Test Data:

  • inherit_run_date = true
  • westgard_second_priority_ordering = "Target Name" (attempted change)

Steps:

  1. Verify "Inherit Run Date" is enabled
  2. Attempt to modify Westgard second priority ordering setting
  3. Observe response

Expected Results:

  • AC-Constraint-1: Westgard second priority ordering setting is disabled/blocked when "Inherit Run Date" is enabled
  • AC-ErrorHandling-3: Constraint violation prevented with reason indicated

Automation Status: Automated

Jira: Derived from SRS Trace (Items 8.1, 8.2)


TC-CLIENTCFG-006: Drag-and-drop import constraint enforcement

Verifies: REQ-CLIENTCFG-001 (AC-Constraint-2)

Method: TM-API

Priority: Medium

Preconditions:

  • Super User authenticated

Test Data:

  • prevent_drag_drop_import = true

Steps:

  1. Enable "Prevent file import via drag and drop" setting
  2. Save configuration
  3. Verify upload button import is also disabled (API response indicates import methods blocked)

Expected Results:

  • AC-Constraint-2: Upload button import is disabled when "Prevent file import via drag and drop" is enabled

Automation Status: Automated

Jira: Derived from SRS Trace (Items 8.3, 8.4)


TC-CLIENTCFG-007: Individual configuration settings persistence

Verifies: REQ-CLIENTCFG-001 (comprehensive settings coverage)

Method: TM-API

Priority: Medium

Preconditions:

  • Super User authenticated
  • Clean configuration state

Test Data:

SettingTest Value
allowed_accession_characters["A-Z", "0-9", "-"]
fallback_shared_controls_enabledtrue
include_passive_targets_in_counttrue
show_comment_counttrue
display_outcomes_as_hyperlinkstrue
export_quant_wells_separate_csvtrue
lims_export_locationSAVE_ON_CLOUD
include_well_comments_in_exporttrue
use_role_priority_for_resolutiontrue

Steps:

  1. For each setting in test data: a. Set value via API b. Save configuration c. Retrieve configuration d. Verify value persisted correctly

Expected Results:

  • All toggle settings persist enable/disable state correctly
  • All dropdown settings persist selected option correctly
  • Multiselect settings persist multiple selections correctly

Automation Status: Automated (Browser)

Feature: user-management-crud.feature

Jira: Derived from SRS Trace (Items 1.1 through 7.2)


TC-CLIENTCFG-008: Export configuration file generation

Verifies: REQ-CLIENTCFG-002 (AC1, AC5)

Method: TM-API

Priority: High

Preconditions:

  • Super User authenticated
  • Known configuration state established

Test Data:

  • Pre-set configuration values across all categories

Steps:

  1. Invoke configuration export endpoint
  2. Receive exported file
  3. Verify file format is consistent and parseable

Expected Results:

  • AC1: Configuration file generated containing all current settings
  • AC5: Export file format is consistent and parseable for re-import (valid structure, no corruption)

Automation Status: Manual (XLSX verification — client settings in kit config import/export)

Jira: Derived from SRS Trace (Item 1.2)


TC-CLIENTCFG-009: Export configuration content verification

Verifies: REQ-CLIENTCFG-002 (AC2, AC3, AC4)

Method: TM-API

Priority: High

Preconditions:

  • Super User authenticated

Test Data:

  • allowed_accession_characters = ["A-Z", "0-9", "-"]
  • westgard_second_priority_ordering = "Run Date"
  • use_role_priority_for_resolution = true

Steps:

  1. Set specific configuration values as test data
  2. Save configuration
  3. Export configuration
  4. Parse exported file
  5. Verify specific settings present with correct values

Expected Results:

  • AC2: Exported file includes accession character validation settings (["A-Z", "0-9", "-"])
  • AC3: Exported file includes Westgard ordering priority settings ("Run Date")
  • AC4: Exported file includes role priority resolution settings (true)

Automation Status: Manual (XLSX verification — client settings in kit config import/export)

Jira: Derived from SRS Trace (Items 2.3, 5.2)


TC-CLIENTCFG-010: Import valid configuration file

Verifies: REQ-CLIENTCFG-003 (AC-FileProcessing-1, AC-FileProcessing-2, AC-Validation-3)

Method: TM-API

Priority: Critical

Preconditions:

  • Super User authenticated
  • Valid configuration export file available

Test Data:

  • Configuration file with known valid values for all settings

Steps:

  1. Invoke import endpoint with valid configuration file
  2. Observe response
  3. Retrieve current configuration
  4. Compare values to imported file contents

Expected Results:

  • AC-FileProcessing-1: Configuration file in supported export format accepted
  • AC-FileProcessing-2: Client configuration updated with values from imported file
  • AC-Validation-3: Success feedback indicates import completed

Automation Status: Manual (XLSX verification — client settings in kit config import/export)

Jira: Derived from SRS Trace (Item 1.3)


TC-CLIENTCFG-011: Import accession character validation settings

Verifies: REQ-CLIENTCFG-003 (AC-FileProcessing-3)

Method: TM-API

Priority: High

Preconditions:

  • Super User authenticated
  • Configuration file containing allowed_accession_characters = ["A-Z", "0-9"]

Steps:

  1. Set allowed_accession_characters to different value (baseline)
  2. Import configuration file
  3. Retrieve allowed_accession_characters setting

Expected Results:

  • AC-FileProcessing-3: Accession character validation settings updated from import file to ["A-Z", "0-9"]

Automation Status: Manual (XLSX verification — client settings in kit config import/export)

Jira: Derived from SRS Trace (Item 1.4)


TC-CLIENTCFG-012: Import validation - invalid option values

Verifies: REQ-CLIENTCFG-003 (AC-Validation-1, AC-Validation-2, AC-ErrorHandling-2)

Method: TM-API

Priority: High

Preconditions:

  • Super User authenticated

Test Data:

  • Configuration file with invalid dropdown value: lims_export_location = "INVALID_OPTION"

Steps:

  1. Invoke import endpoint with configuration file containing invalid value
  2. Observe response

Expected Results:

  • AC-Validation-1: Imported values validated against defined option constraints
  • AC-Validation-2: Import values not in defined option sets are rejected
  • AC-ErrorHandling-2: Validation error message identifies the invalid field (lims_export_location) and value (INVALID_OPTION)

Automation Status: Manual (XLSX verification — client settings in kit config import/export)

Jira: Derived from SRS Trace (Item 1.4)


TC-CLIENTCFG-013: Import validation - malformed file

Verifies: REQ-CLIENTCFG-003 (AC-ErrorHandling-1, AC-ErrorHandling-3)

Method: TM-API

Priority: High

Preconditions:

  • Super User authenticated

Test Data:

  • Malformed configuration file (corrupted structure, invalid format)
  • Wrong file type (e.g., text file instead of expected format)

Steps:

  1. Attempt import with malformed/corrupted file
  2. Observe response
  3. Attempt import with wrong file type
  4. Observe response

Expected Results:

  • AC-ErrorHandling-1: Invalid file format rejected with "Invalid configuration file format" message
  • AC-ErrorHandling-3: Malformed or corrupted file rejected with appropriate error message

Automation Status: Manual (XLSX verification — client settings in kit config import/export)

Jira: Derived from SRS Trace (Item 1.4)


Gap Analysis

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

Coverage by AC Category

AC CategoryCountCoveredNotes
Display/Rendering33Verified via TM-UI
Validation55Verified via TM-API
Persistence11Verified via TM-API
Feature Toggles11Verified via TM-API (multi-user)
Constraints22Verified via TM-API
Error Handling66Verified via TM-API
Export Content44Verified via TM-API
Import Processing22Verified via TM-API

Traceability to Existing Tests

Test CaseSRS ReferenceExisting Gherkin
TC-CLIENTCFG-001TC-CLIENTCFG-001 (Access configuration screen)Yes
TC-CLIENTCFG-002TC-CLIENTCFG-002-005 (Setting modifications)Yes
TC-CLIENTCFG-003TC-CLIENTCFG-007-010 (Persistence tests)Yes
TC-CLIENTCFG-004TC-CLIENTCFG-012-016 (Feature toggles)Yes
TC-CLIENTCFG-005TC-CLIENTCFG-006 (Westgard constraint)Yes
TC-CLIENTCFG-006TC-CLIENTCFG-011 (Drag-drop constraint)Yes
TC-CLIENTCFG-007TC-CLIENTCFG-002-010 (Individual settings)Yes
TC-CLIENTCFG-008TC-CLIENTCFG-017 (Export)Yes
TC-CLIENTCFG-009TC-CLIENTCFG-018 (Export content)Yes
TC-CLIENTCFG-010TC-CLIENTCFG-019 (Import valid)Yes
TC-CLIENTCFG-011TC-CLIENTCFG-020 (Import characters)Yes
TC-CLIENTCFG-012TC-CLIENTCFG-021 (Import validation)Yes
TC-CLIENTCFG-013TC-CLIENTCFG-022 (Import format error)Yes

Notes

  • CLIENTCFG is primarily an API-testable domain; UI tests are used only for display verification
  • Configuration changes are globally scoped (affect all users), requiring multi-session test scenarios
  • Import/export operations use Excel format (handled by Laravel Excel package)
  • Constraint enforcement (Westgard ordering, drag-drop import) is backend logic testable via API
  • Existing Gherkin tests in SRS provide behavioral specification; this STD formalizes method and coverage