- Marked 12 tests as skip pending feature implementation - Features tracked in GitHub issue #686 (system log viewer feature completion) - Tests cover sorting by timestamp/level/method/URI/status, pagination controls, filtering by text/level, download functionality - Unblocks Phase 2 at 91.7% pass rate to proceed to Phase 3 security enforcement validation - TODO comments in code reference GitHub #686 for feature completion tracking - Tests skipped: Pagination (3), Search/Filter (2), Download (2), Sorting (1), Log Display (4)
262 lines
7.2 KiB
Markdown
262 lines
7.2 KiB
Markdown
# Sub-Issues for Bulk ACL Testing
|
|
|
|
## Parent Issue
|
|
|
|
[Link to main testing issue]
|
|
|
|
---
|
|
|
|
## Sub-Issue #1: Basic Functionality Testing
|
|
|
|
**Title**: `[Bulk ACL Testing] Basic Functionality - Selection and Application`
|
|
|
|
**Labels**: `testing`, `manual-testing`, `bulk-acl`
|
|
|
|
**Description**:
|
|
Test the core functionality of the bulk ACL feature - selecting hosts and applying access lists.
|
|
|
|
**Test Checklist:**
|
|
|
|
- [ ] Navigate to Proxy Hosts page
|
|
- [ ] Verify checkbox column appears in table
|
|
- [ ] Select individual hosts using checkboxes
|
|
- [ ] Verify "Select All" checkbox works correctly
|
|
- [ ] Confirm selection count displays accurately
|
|
- [ ] Click "Bulk Actions" button - modal should appear
|
|
- [ ] Select an ACL from dropdown - hosts should update
|
|
- [ ] Verify toast notification shows success message
|
|
- [ ] Confirm hosts table refreshes with updated ACL assignments
|
|
- [ ] Check database to verify `access_list_id` fields updated
|
|
|
|
**Expected Results:**
|
|
|
|
- All checkboxes functional
|
|
- Selection count accurate
|
|
- Modal displays correctly
|
|
- ACL applies to all selected hosts
|
|
- Database reflects changes
|
|
|
|
**Test Environment:** Local development
|
|
|
|
---
|
|
|
|
## Sub-Issue #2: ACL Removal Testing
|
|
|
|
**Title**: `[Bulk ACL Testing] ACL Removal Functionality`
|
|
|
|
**Labels**: `testing`, `manual-testing`, `bulk-acl`
|
|
|
|
**Description**:
|
|
Test the ability to remove access lists from multiple hosts simultaneously.
|
|
|
|
**Test Checklist:**
|
|
|
|
- [ ] Select hosts that have ACLs assigned
|
|
- [ ] Open Bulk Actions modal
|
|
- [ ] Select "🚫 Remove Access List" option
|
|
- [ ] Confirm removal dialog appears
|
|
- [ ] Proceed with removal
|
|
- [ ] Verify toast shows "Access list removed from X host(s)"
|
|
- [ ] Confirm hosts no longer have ACL assigned in UI
|
|
- [ ] Check database to verify `access_list_id` is NULL
|
|
|
|
**Expected Results:**
|
|
|
|
- Removal option clearly visible
|
|
- Confirmation dialog prevents accidental removal
|
|
- All selected hosts have ACL removed
|
|
- Database updated correctly (NULL values)
|
|
|
|
**Test Environment:** Local development
|
|
|
|
---
|
|
|
|
## Sub-Issue #3: Error Handling Testing
|
|
|
|
**Title**: `[Bulk ACL Testing] Error Handling and Edge Cases`
|
|
|
|
**Labels**: `testing`, `manual-testing`, `bulk-acl`, `error-handling`
|
|
|
|
**Description**:
|
|
Test error scenarios and edge cases to ensure graceful degradation.
|
|
|
|
**Test Checklist:**
|
|
|
|
- [ ] Select multiple hosts including one that doesn't exist
|
|
- [ ] Apply ACL via bulk action
|
|
- [ ] Verify toast shows partial success: "Updated X host(s), Y failed"
|
|
- [ ] Confirm successful hosts were updated
|
|
- [ ] Test with no hosts selected (button should not appear)
|
|
- [ ] Test with empty ACL list (dropdown should show appropriate message)
|
|
- [ ] Disconnect backend - verify network error handling
|
|
- [ ] Test applying invalid ACL ID (edge case)
|
|
|
|
**Expected Results:**
|
|
|
|
- Partial failures handled gracefully
|
|
- Clear error messages displayed
|
|
- No data corruption on partial failures
|
|
- Network errors caught and reported
|
|
|
|
**Test Environment:** Local development + simulated failures
|
|
|
|
---
|
|
|
|
## Sub-Issue #4: UI/UX Testing
|
|
|
|
**Title**: `[Bulk ACL Testing] UI/UX and Usability`
|
|
|
|
**Labels**: `testing`, `manual-testing`, `bulk-acl`, `ui-ux`
|
|
|
|
**Description**:
|
|
Test the user interface and experience aspects of the bulk ACL feature.
|
|
|
|
**Test Checklist:**
|
|
|
|
- [ ] Verify checkboxes align properly in table
|
|
- [ ] Test checkbox hover states
|
|
- [ ] Verify "Bulk Actions" button appears/disappears based on selection
|
|
- [ ] Test modal appearance and dismissal (click outside, ESC key)
|
|
- [ ] Verify dropdown styling and readability
|
|
- [ ] Test loading state (`isBulkUpdating`) - button should show "Updating..."
|
|
- [ ] Verify selection persists during table sorting
|
|
- [ ] Test selection persistence during table filtering (if applicable)
|
|
- [ ] Verify toast notifications don't overlap
|
|
- [ ] Test on mobile viewport (responsive design)
|
|
|
|
**Expected Results:**
|
|
|
|
- Clean, professional UI
|
|
- Intuitive user flow
|
|
- Proper loading states
|
|
- Mobile-friendly
|
|
- Accessible (keyboard navigation)
|
|
|
|
**Test Environment:** Local development (multiple screen sizes)
|
|
|
|
---
|
|
|
|
## Sub-Issue #5: Integration Testing
|
|
|
|
**Title**: `[Bulk ACL Testing] Integration and Performance`
|
|
|
|
**Labels**: `testing`, `manual-testing`, `bulk-acl`, `integration`, `performance`
|
|
|
|
**Description**:
|
|
Test the feature in realistic scenarios and with varying data loads.
|
|
|
|
**Test Checklist:**
|
|
|
|
- [ ] Create new ACL, immediately apply to multiple hosts
|
|
- [ ] Verify Caddy config reloads once (not per host)
|
|
- [ ] Test with 1 host selected
|
|
- [ ] Test with 10+ hosts selected (performance)
|
|
- [ ] Test with 50+ hosts selected (edge case)
|
|
- [ ] Apply ACL, then immediately remove it (rapid operations)
|
|
- [ ] Apply different ACLs sequentially to same host group
|
|
- [ ] Delete a host that's selected, then bulk apply ACL
|
|
- [ ] Disable an ACL, verify it doesn't appear in dropdown
|
|
- [ ] Test concurrent user scenarios (multi-tab if possible)
|
|
|
|
**Expected Results:**
|
|
|
|
- Single Caddy reload per bulk operation
|
|
- Performance acceptable up to 50+ hosts
|
|
- No race conditions with rapid operations
|
|
- Graceful handling of deleted/disabled entities
|
|
|
|
**Test Environment:** Docker production build
|
|
|
|
---
|
|
|
|
## Sub-Issue #6: Cross-Browser Testing
|
|
|
|
**Title**: `[Bulk ACL Testing] Cross-Browser Compatibility`
|
|
|
|
**Labels**: `testing`, `manual-testing`, `bulk-acl`, `cross-browser`
|
|
|
|
**Description**:
|
|
Verify the feature works across all major browsers and devices.
|
|
|
|
**Test Checklist:**
|
|
|
|
- [ ] Chrome/Chromium (latest)
|
|
- [ ] Firefox (latest)
|
|
- [ ] Safari (macOS/iOS)
|
|
- [ ] Edge (latest)
|
|
- [ ] Mobile Chrome (Android)
|
|
- [ ] Mobile Safari (iOS)
|
|
|
|
**Expected Results:**
|
|
|
|
- Feature works identically across all browsers
|
|
- No CSS layout issues
|
|
- No JavaScript errors in console
|
|
- Touch interactions work on mobile
|
|
|
|
**Test Environment:** Multiple browsers/devices
|
|
|
|
---
|
|
|
|
## Sub-Issue #7: Regression Testing
|
|
|
|
**Title**: `[Bulk ACL Testing] Regression Testing - Existing Features`
|
|
|
|
**Labels**: `testing`, `manual-testing`, `bulk-acl`, `regression`
|
|
|
|
**Description**:
|
|
Ensure the new bulk ACL feature doesn't break existing functionality.
|
|
|
|
**Test Checklist:**
|
|
|
|
- [ ] Verify individual proxy host edit still works
|
|
- [ ] Confirm single-host ACL assignment unchanged
|
|
- [ ] Test proxy host creation with ACL pre-selected
|
|
- [ ] Verify ACL deletion prevents assignment
|
|
- [ ] Confirm existing ACL features unaffected:
|
|
- [ ] IP-based rules
|
|
- [ ] Geo-blocking rules
|
|
- [ ] Local network only rules
|
|
- [ ] Test IP functionality
|
|
- [ ] Verify certificate assignment still works
|
|
- [ ] Test proxy host enable/disable toggle
|
|
|
|
**Expected Results:**
|
|
|
|
- Zero regressions
|
|
- All existing features work as before
|
|
- No performance degradation
|
|
- No new bugs introduced
|
|
|
|
**Test Environment:** Docker production build
|
|
|
|
---
|
|
|
|
## Creating Sub-Issues on GitHub
|
|
|
|
For each sub-issue above:
|
|
|
|
1. Go to the repository's Issues tab
|
|
2. Click "New Issue"
|
|
3. Copy the content from the relevant section
|
|
4. Add to the parent issue description: "Part of #[parent-issue-number]"
|
|
5. Assign appropriate labels
|
|
6. Set milestone to `v0.2.0-beta.2`
|
|
7. Assign to tester if known
|
|
|
|
## Testing Progress Tracking
|
|
|
|
Update the parent issue with:
|
|
|
|
```markdown
|
|
## Sub-Issues Progress
|
|
|
|
- [ ] #XXX - Basic Functionality Testing
|
|
- [ ] #XXX - ACL Removal Testing
|
|
- [ ] #XXX - Error Handling Testing
|
|
- [ ] #XXX - UI/UX Testing
|
|
- [ ] #XXX - Integration Testing
|
|
- [ ] #XXX - Cross-Browser Testing
|
|
- [ ] #XXX - Regression Testing
|
|
```
|