STD: Site Management (SITE)
Version: v1.0.0 Status: Draft SRS Source:
docusaurus/docs/srs/site.mdDomain: SITE
Overview
This document specifies tests for the Site Management domain, which covers creating, configuring, and managing organizational sites with automatic cloud storage provisioning.
Domain Characteristics:
- Primary function: Site lifecycle management (create, configure, edit)
- Secondary function: S3 storage provisioning and folder structure management
- Configuration dependency: Multi-site mode, S3 structure preservation settings
Test Method Rationale: Per Test Plan section 3.3, Configuration domains use TM-API as primary method with TM-UI secondary. SITE combines configuration with storage provisioning, so TM-HYB is used where storage verification requires backend checks while user actions flow through UI.
Test Case Convention: Steps describe logical actions, not UI mechanics. Use "Create site with name X" or "Modify S3 folder name to Y", not "Click the Add Site button" or "Enter text in the folder name field". This ensures test intent survives UI redesigns.
Coverage Summary
| REQ ID | Title | ACs | Tests | AC Coverage | Method | Gaps |
|---|---|---|---|---|---|---|
| REQ-SITE-001 | Provision Storage on Site Creation | 6 | TC-SITE-001, TC-SITE-002, TC-SITE-020, TC-SITE-021, TC-SITE-022, TC-SITE-023 | 6/6 (100%) | TM-HYB, TM-UI | None |
| REQ-SITE-002 | Configure S3 Structure Preservation | 5 | TC-SITE-003, TC-SITE-004, TC-SITE-024, TC-SITE-025 | 5/5 (100%) | TM-HYB, TM-UI | None |
| REQ-SITE-003 | Specify Custom S3 Folder Name | 5 | TC-SITE-005, TC-SITE-006, TC-SITE-026 | 5/5 (100%) | TM-HYB, TM-UI | None |
| REQ-SITE-004 | Modify Custom S3 Folder Name | 4 | TC-SITE-007 | 4/4 (100%) | TM-HYB | None |
| REQ-SITE-005 | Enforce Multi-site Mode Restrictions | 8 | TC-SITE-008, TC-SITE-009, TC-SITE-027, TC-SITE-028 | 8/8 (100%) | TM-UI | None |
| NFR-SITE-001 | Storage Operation Reliability | 3 | TC-SITE-010 | 3/3 (100%) | TM-API | None |
Totals: 6 REQs, 31 ACs, 19 Test Cases, 100% Coverage
Test Cases
TC-SITE-001: Storage folder creation on site creation
Verifies: REQ-SITE-001 (AC1, AC2, AC3)
Method: TM-HYB (UI for site creation, API for storage verification)
Priority: High
Preconditions:
- User logged in with Admin role or higher
- Storage system accessible
Test Data:
- Site name: "test_site"
- Expected storage path:
storage/app/test_site/LIMS_Reports
Steps:
- Create new site with name "test_site"
- Verify site creation completes successfully
- Verify storage folder exists via backend/API check
Expected Results:
- AC1: LIMS_Reports folder created at configured storage path
- AC2: Folder creation completes as part of site creation process
- AC3: Folder created at path
storage/app/test_site/LIMS_Reports
Automation Status: Automated (Browser — UI verification; storage path verification beyond browser scope)
Jira: BT-3999
TC-SITE-002: Site creation access control and error handling
Verifies: REQ-SITE-001 (AC4, Error Handling)
Method: TM-HYB (API for role verification, UI for error display)
Priority: High
Preconditions:
- Multiple user accounts with different roles available
Test Data:
- Users: Super Admin, Admin, Senior User, Junior User
Steps:
- Attempt site creation as Junior User
- Verify creation is denied
- Attempt site creation as Senior User
- Verify creation is denied
- Attempt site creation as Admin
- Verify creation succeeds
- Configure storage to be inaccessible (if testable)
- Attempt site creation
- Verify error displayed
Expected Results:
- AC4: Site creation restricted to Admin role or higher
- Error: Storage path inaccessible displays storage access error
- Error: Existing folder used without error
Automation Status: Automated (Browser — role-based access control verification)
Jira: BT-3999
TC-SITE-003: S3 structure preservation toggle access and folder structure
Verifies: REQ-SITE-002 (AC1, AC2, AC3, AC4)
Method: TM-HYB (UI for toggle, API for folder verification)
Priority: High
Preconditions:
- User logged in as Super Admin
- Multi-site mode enabled
- Environment name: "test_env"
Test Data:
- First site name: "first_site"
Steps:
- Navigate to Sites page as Super Admin
- Verify S3 structure preservation toggle is visible
- Enable preservation toggle
- Create or verify first site
- Verify storage folders exist at root level
- Disable preservation toggle
- Trigger file operation (import/export)
- Verify new files created at site-specific path
Expected Results:
- AC1: Toggle for S3 structure preservation visible on Sites page
- AC2: Toggle restricted to Super Admin users
- AC3: When enabled, first site uses root-level folders (
<env>/LIMS_Export,<env>/Runs) - AC4: When disabled, first site uses site-specific folders (
<env>/<site_name>/LIMS_Export,<env>/<site_name>/Runs)
Automation Status: Automated (Browser)
Jira: BT-4735
TC-SITE-004: S3 structure migration behavior
Verifies: REQ-SITE-002 (AC5, AC6)
Method: TM-HYB (UI for toggle, API for file verification)
Priority: Medium
Preconditions:
- First site "Azkaban" exists
- Preservation toggle currently enabled
- Files exist at root-level storage
Test Data:
- Existing file: "existing_export.csv" at root level
- New import file: "sample.sds"
Steps:
- Verify existing files at root-level folders
- Disable S3 structure preservation toggle
- Import sample.sds
- Export run
- Verify file locations
Expected Results:
- AC5: Existing files remain at original root-level location (not migrated)
- AC6: New files created at site-specific folder structure
Automation Status: Automated (Browser)
Jira: BT-4735
TC-SITE-005: Custom S3 folder name at site creation - default behavior
Verifies: REQ-SITE-003 (AC1, AC2, AC3)
Method: TM-HYB (UI for site creation, API for storage verification)
Priority: High
Preconditions:
- User logged in as Admin or higher
- LIMS export location set to cloud
- Multi-site mode enabled
- S3 structure preservation disabled (for non-first sites)
Test Data:
- Site name: "Azkaban"
- Import file: "sample.sds"
Steps:
- Create new site with name "Azkaban"
- Leave Custom S3 Folder Name field blank
- Import sample.sds
- Export run
- Verify storage folder path
Expected Results:
- AC1: Custom folder name field available during site creation
- AC2: When blank, system uses site name as folder name
- Folders created at
Amazon S3/Buckets/<env>/Azkaban/LIMS_Export
Automation Status: Automated (Browser)
Jira: BT-4735
TC-SITE-006: Custom S3 folder name at site creation - custom value
Verifies: REQ-SITE-003 (AC3, AC4, AC5)
Method: TM-HYB (UI for site creation, API for storage verification)
Priority: High
Preconditions:
- Same as TC-SITE-005
Test Data:
- Site name: "Azkaban"
- Custom folder name: "cell_one"
- Import file: "sample.sds"
Steps:
- Create new site with name "Azkaban"
- Set Custom S3 Folder Name to "cell_one"
- Import sample.sds
- Export run
- Verify storage folder paths
Expected Results:
- AC3: Custom folder name used instead of site name
- AC4: LIMS export storage at
Amazon S3/Buckets/<env>/cell_one/LIMS_Export - AC5: Completed files storage at
Amazon S3/Buckets/<env>/cell_one/Runs/Completed_files
Automation Status: Automated (Browser)
Jira: BT-4735
TC-SITE-007: Modify custom S3 folder name for existing site
Verifies: REQ-SITE-004 (AC1, AC2, AC3, AC4)
Method: TM-HYB (UI for edit, API for storage verification)
Priority: High
Preconditions:
- Site "Azkaban" exists with custom folder name "cell_one"
- Files have been imported/exported to cell_one folder
- LIMS export location set to cloud
Test Data:
- Original folder: "cell_one"
- New folder: "nurburgring"
- Import files for before/after operations
Steps:
- Edit site "Azkaban"
- Change custom S3 folder name from "cell_one" to "nurburgring"
- Save changes
- Import new file
- Export new run
- Verify both folder paths
Expected Results:
- AC1: Edit capability available for custom folder name
- AC2: New storage directories created at nurburgring path
- AC3: Existing directories remain unchanged at cell_one path
- AC4: New imports/exports use nurburgring folder; existing files remain at cell_one
Automation Status: Automated (Browser)
Jira: BT-4735
TC-SITE-008: Multi-site mode disabled - feature restrictions
Verifies: REQ-SITE-005 (AC1, AC2, AC3, AC4, AC8)
Method: TM-UI
Priority: High
Preconditions:
- Two sites exist (Lab 1, Lab 2)
- User logged in as Super Admin
Steps:
- Disable Use Multiple Sites setting
- Navigate to Sites page
- Verify control states
- Attempt site creation
- Attempt site editing
- Attempt toggling site enabled status
- Attempt modifying S3 structure preservation
- Re-enable Use Multiple Sites
- Verify controls restored
Expected Results:
- AC1: Site creation prevented when multi-site disabled
- AC2: Site editing prevented when multi-site disabled
- AC3: Site enabled toggle prevented when multi-site disabled
- AC4: S3 structure preservation modification prevented when multi-site disabled
- AC8: Re-enabling multi-site restores all site management features
Automation Status: Automated (Browser)
Jira: BT-4773
TC-SITE-009: Multi-site mode disabled - default folder structure
Verifies: REQ-SITE-005 (AC5, AC6, AC7)
Method: TM-HYB (UI for settings, API for storage verification)
Priority: High
Preconditions:
- Site "Azkaban" exists with custom folder name
- LIMS export location set to cloud
- S3 structure preservation is disabled
Test Data:
- Import file: "sample.sds"
Steps:
- Disable Use Multiple Sites
- Import file
- Export run
- Verify storage paths
Expected Results:
- AC5: System uses default root-level folder structure
- AC6: Custom S3 folder name settings ignored
- AC7: Files created at
Amazon S3/Buckets/<env>/LIMS_ExportandAmazon S3/Buckets/<env>/Runs/Completed_files
Automation Status: Automated (Browser)
Jira: BT-4735
TC-SITE-010: Storage operation reliability
Verifies: NFR-SITE-001 (AC1, AC2, AC3)
Method: TM-API
Priority: Medium
Preconditions:
- Test environment with controllable storage behavior
Test Data:
- Multiple concurrent site creation requests
- Site with existing data
Steps:
- Initiate site creation
- Simulate storage failure mid-operation
- Verify no partial folder state
- Submit multiple concurrent site creation requests
- Verify all complete successfully without conflicts
- Modify folder settings for site with existing data
- Verify existing data unchanged
Expected Results:
- AC1: Folder creation is atomic (complete or fail, no partial state)
- AC2: Concurrent folder operations handled safely
- AC3: Existing data not modified when folder settings change
Automation Status: Manual (requires infrastructure manipulation)
Jira: [Pending]
Deviation: TM-MAN used for AC1 and AC2 due to requirement for infrastructure-level test setup. Remediation: Consider integration test with mock storage for atomicity verification.
TC-SITE-020: Sites page loads with title and site table
Verifies: REQ-SITE-001
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in as Super Admin
Steps:
- Navigate to
/sites - Verify page title element and site table are rendered
- Verify at least one site row is present
Expected Results:
- Sites page renders with screen title "Sites"
- Flex table header is displayed
- At least one site row is visible
Automation Status: Automated (Browser)
TC-SITE-021: Sites table displays expected column headers for Super Admin
Verifies: REQ-SITE-001
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in as Super Admin
Steps:
- Navigate to
/sites - Verify table header columns
Expected Results:
- Table displays "Name" column
- Table displays "Custom S3 Folder Name" column
- Table displays "Edit" column
- Table displays "Enabled" column
Automation Status: Automated (Browser)
TC-SITE-022: Default site present after fresh seed
Verifies: REQ-SITE-001
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in as Super Admin
- Database freshly seeded
Steps:
- Navigate to
/sites - Verify at least one default site row exists
Expected Results:
- At least one site row is present after database seeding
Automation Status: Automated (Browser)
TC-SITE-023: Sidebar navigation to Sites page
Verifies: REQ-SITE-001
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in as Super Admin
Steps:
- Navigate to home page
- Click the "sites" sidebar item
- Verify Sites page loads with table
Expected Results:
- Sidebar contains a "sites" navigation item
- Clicking sidebar item loads the Sites page
- Sites page displays table header and site data
Automation Status: Automated (Browser)
TC-SITE-024: Create site via UI when multisite is enabled
Verifies: REQ-SITE-002
Method: TM-UI
Priority: High
Preconditions:
- User logged in as Super Admin
- Multi-site mode enabled
Steps:
- Create a site named "Test Lab Alpha" via the UI
- Verify site appears in the sites table
Expected Results:
- Site creation succeeds when multisite feature is enabled
- Newly created site "Test Lab Alpha" is visible in the table
Automation Status: Automated (Browser)
TC-SITE-025: Create button disabled when multisite feature is off
Verifies: REQ-SITE-002
Method: TM-UI
Priority: High
Preconditions:
- User logged in as Super Admin
- Multi-site feature (
use_multiple_sites) disabled
Steps:
- Navigate to
/sites - Verify create button is present but disabled
Expected Results:
- Create Site button is rendered in a disabled state
- Site creation is not possible when multisite is off
Automation Status: Automated (Browser)
TC-SITE-026: Multisite feature toggle visible to Super Admin
Verifies: REQ-SITE-003
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in as Super Admin
Steps:
- Navigate to
/sites - Verify "Use Multiple Sites" toggle is visible
Expected Results:
- "Use Multiple Sites" toggle is displayed on the Sites page for Super Admin
Automation Status: Automated (Browser)
TC-SITE-027: MANAGER can access Sites page but cannot see Edit column
Verifies: REQ-SITE-005
Method: TM-UI
Priority: High
Preconditions:
- User with MANAGER role exists
Steps:
- Log in as MANAGER user
- Navigate to
/sites - Verify page loads with site table
- Verify Edit column is not visible
Expected Results:
- MANAGER role can access the Sites page
- Site rows are displayed
- Edit column is hidden (fewer columns than Super Admin view)
Automation Status: Automated (Browser)
TC-SITE-028: JUNIOR role is redirected away from Sites page
Verifies: REQ-SITE-005
Method: TM-UI
Priority: High
Preconditions:
- User with JUNIOR role exists
Steps:
- Log in as JUNIOR user
- Attempt to navigate to
/sites - Verify user is redirected away
Expected Results:
- JUNIOR role does not have access to the Sites page
- User is redirected to a different page (no "Sites" screen title displayed)
Automation Status: Automated (Browser)
Gap Analysis
No gaps identified. All 31 acceptance criteria have test coverage.
Coverage by AC Type
| AC Category | Count | Covered | Notes |
|---|---|---|---|
| Storage/Folder Operations | 12 | 12 | Verified via TM-HYB (API storage checks) |
| Access Control | 4 | 4 | Verified via TM-HYB (role-based tests) |
| Configuration Toggle | 6 | 6 | Verified via TM-UI and TM-HYB |
| Feature Restrictions | 6 | 6 | Verified via TM-UI |
| Non-Functional | 3 | 3 | Verified via TM-API/TM-MAN |
Traceability to Existing Tests
| Test Case | Jira Test | Automation |
|---|---|---|
| TC-SITE-001, TC-SITE-002 | BT-3999 | Behat |
| TC-SITE-003, TC-SITE-004, TC-SITE-005, TC-SITE-006, TC-SITE-007, TC-SITE-009 | BT-4735 | Behat |
| TC-SITE-008 | BT-4773 | Selenium |
| TC-SITE-010 | Pending | Manual |
| TC-SITE-020 through TC-SITE-028 | — | Behat (Browser) |
Notes
- SITE domain combines configuration (S3 settings) with backend operations (storage provisioning)
- Multi-site mode acts as a feature gate, disabling most SITE functionality when off
- S3 structure preservation only affects the first site; subsequent sites always use site-specific folders
- Folder name changes do not migrate existing data; this is by design per OQ-01 resolution
- NFR-SITE-001 tests may require mock storage or infrastructure-level test setup