TenantAtlas/specs/003-settings-catalog-readable/MANUAL_TESTING_CHECKLIST.md
Ahmed Darrazi 41f678efe5 docs: Complete Feature 003 testing documentation
- Updated tasks.md: T034-T037, T040 marked complete
- Created MANUAL_TESTING_CHECKLIST.md for T023-T025, T042
- Comprehensive browser testing guide with success criteria
- Ready for manual QA verification
2025-12-21 10:08:04 +01:00

6.1 KiB

Feature 003: Manual Testing Checklist

Prerequisites

  1. Start the application:

    ./vendor/bin/sail up -d
    ./vendor/bin/sail artisan serve
    
  2. Access Filament admin: http://localhost/admin

  3. Create test tenant with Settings Catalog policy (or use existing)


T023: Verify JSON Tab Still Works

Task: Ensure JSON tab navigation and functionality from Feature 002 is intact

Steps:

  1. Navigate to /admin/policies
  2. Click on a Settings Catalog policy
  3. Verify two tabs are visible: "Settings" and "JSON"
  4. Click "JSON" tab
  5. Verify JSON viewer renders the policy snapshot
  6. Click copy button next to JSON content
  7. Paste into text editor - should contain valid JSON

Success Criteria:

  • Both tabs render
  • Tab switching works
  • JSON content displays correctly
  • Copy button functional
  • No JavaScript errors in browser console

Failure Handling:

If JSON tab is broken, check:

  • Browser console for errors
  • pepperfm/filament-json package installation
  • PolicyResource.php tabs configuration

T024: Verify Fallback for Uncached Definitions

Task: Check UI shows prettified labels when definitions are not cached

Setup:

Create a policy with an unknown definition ID:

php artisan tinker
$policy = Policy::factory()->create([
    'policy_type' => 'settingsCatalog',
    'display_name' => 'Fallback Test Policy',
]);

PolicyVersion::create([
    'policy_id' => $policy->id,
    'tenant_id' => $policy->tenant_id,
    'version_number' => 1,
    'policy_type' => 'settingsCatalog',
    'platform' => 'windows',
    'snapshot' => [
        '@odata.type' => '#microsoft.graph.deviceManagementConfigurationPolicy',
        'settings' => [[
            'settingInstance' => [
                'settingDefinitionId' => 'device_vendor_msft_uncached_test_setting',
                'simpleSettingValue' => ['value' => 123]
            ]
        ]]
    ],
    'created_by' => 'test@example.com',
    'captured_at' => now(),
]);

Steps:

  1. Navigate to the created policy view
  2. Open Settings tab
  3. Look for setting display

Success Criteria:

  • Page renders without crash
  • Setting shows prettified label: "Device Vendor Msft Uncached Test Setting"
  • No error messages displayed
  • Value (123) displays correctly
  • No JavaScript errors

Failure Handling:

  • If crash occurs, check SettingsCatalogDefinitionResolver fallback logic
  • If raw ID shows, check PolicyNormalizer prettifyDefinitionId() method

T025: JSON Viewer Scope

Task: Ensure JSON viewer only renders on Policy View page

Steps:

  1. Navigate to /admin/policies (list view)
  2. Verify: No JSON viewer appears on list page
  3. Navigate to /admin/tenants
  4. Verify: No JSON viewer on tenant list
  5. Click on a tenant detail page
  6. Verify: No JSON viewer on tenant detail
  7. Navigate back to Policy View page
  8. Verify: JSON viewer present ONLY here

Success Criteria:

  • JSON viewer ONLY on Policy View page
  • Not globally injected into all Filament pages
  • No console errors on other pages

T034: Display Names vs Raw IDs

Task: Verify Settings tab shows human-readable names, not definition IDs

Steps:

  1. Warm cache for a policy:

    ./vendor/bin/sail artisan app:warm-settings-catalog-definitions
    
  2. Navigate to Settings Catalog policy view

  3. Open Settings tab

  4. Inspect setting labels

Success Criteria:

  • Labels show display names: "Allow Real-time Monitoring"
  • Raw definition IDs NOT visible: device_vendor_msft_policy_config_defender_allowrealtimemonitoring
  • Help text appears below labels (if available)
  • Category grouping visible (e.g., "Windows Defender Antivirus")

T035: Value Formatting

Task: Verify setting values are formatted appropriately

Test Cases:

Boolean Values:

  • true shows as "Enabled" or badge
  • false shows as "Disabled" or badge

Integer Values:

  • Large numbers formatted: 1234512,345
  • Small numbers display as-is: 55

String Values:

  • Short strings display fully
  • Long strings truncated with "..." (hover for full text)

Choice/Enum Values:

  • Shows human-readable label (if available)
  • Falls back to choice value if label missing

Success Criteria:

All value types render clearly and are visually distinct


T036: Search/Filter Functionality

Task: Test client-side search filtering

Steps:

  1. Navigate to Settings Catalog policy with multiple settings (10+)
  2. Locate search box above settings list
  3. Type "defender" in search box
  4. Verify: Only settings with "defender" in name/description remain visible
  5. Clear search box
  6. Verify: All settings reappear
  7. Test case-insensitive search: "DEFENDER"
  8. Verify: Still filters correctly

Success Criteria:

  • Search box present
  • Instant filtering (no page reload)
  • Case-insensitive matching
  • Clear/reset works
  • No JavaScript errors during search

T042: Full QA Walkthrough

Complete User Journey:

  1. Login to Filament admin
  2. Navigate to Policies list
  3. Select Settings Catalog policy
  4. Verify Settings tab active by default
  5. Scroll through grouped settings
  6. Expand/Collapse accordion groups
  7. Hover over truncated values (tooltips)
  8. Click copy buttons
  9. Use search filter
  10. Switch to JSON tab
  11. Switch back to Settings tab
  12. Test dark mode toggle (if applicable)

Success Criteria:

  • Smooth navigation throughout
  • No visual glitches
  • No console errors
  • Responsive layout on different screen sizes
  • Accessible keyboard navigation

Sign-off

Tester: _________________
Date: _________________
Result: ☐ PASS ☐ FAIL (document issues below)

Issues Found:




Recommendations: