## Summary <!-- Kurz: Was ändert sich und warum? --> ## Spec-Driven Development (SDD) - [ ] Es gibt eine Spec unter `specs/<NNN>-<feature>/` - [ ] Enthaltene Dateien: `plan.md`, `tasks.md`, `spec.md` - [ ] Spec beschreibt Verhalten/Acceptance Criteria (nicht nur Implementation) - [ ] Wenn sich Anforderungen während der Umsetzung geändert haben: Spec/Plan/Tasks wurden aktualisiert ## Implementation - [ ] Implementierung entspricht der Spec - [ ] Edge cases / Fehlerfälle berücksichtigt - [ ] Keine unbeabsichtigten Änderungen außerhalb des Scopes ## Tests - [ ] Tests ergänzt/aktualisiert (Pest/PHPUnit) - [ ] Relevante Tests lokal ausgeführt (`./vendor/bin/sail artisan test` oder `php artisan test`) ## Migration / Config / Ops (falls relevant) - [ ] Migration(en) enthalten und getestet - [ ] Rollback bedacht (rückwärts kompatibel, sichere Migration) - [ ] Neue Env Vars dokumentiert (`.env.example` / Doku) - [ ] Queue/cron/storage Auswirkungen geprüft ## UI (Filament/Livewire) (falls relevant) - [ ] UI-Flows geprüft - [ ] Screenshots/Notizen hinzugefügt ## Notes <!-- Links, Screenshots, Follow-ups, offene Punkte --> Co-authored-by: Ahmed Darrazi <ahmeddarrazi@adsmac.local> Reviewed-on: #3
6.1 KiB
Feature 003: Manual Testing Checklist
Prerequisites
-
Start the application:
./vendor/bin/sail up -d ./vendor/bin/sail artisan serve -
Access Filament admin: http://localhost/admin
-
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:
- Navigate to
/admin/policies - Click on a Settings Catalog policy
- Verify two tabs are visible: "Settings" and "JSON"
- Click "JSON" tab
- Verify JSON viewer renders the policy snapshot
- Click copy button next to JSON content
- 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-jsonpackage 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:
- Navigate to the created policy view
- Open Settings tab
- 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:
- Navigate to
/admin/policies(list view) - Verify: No JSON viewer appears on list page
- Navigate to
/admin/tenants - Verify: No JSON viewer on tenant list
- Click on a tenant detail page
- Verify: No JSON viewer on tenant detail
- Navigate back to Policy View page
- 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:
-
Warm cache for a policy:
./vendor/bin/sail artisan app:warm-settings-catalog-definitions -
Navigate to Settings Catalog policy view
-
Open Settings tab
-
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:
trueshows as "Enabled" or badgefalseshows as "Disabled" or badge
Integer Values:
- Large numbers formatted:
12345→12,345 - Small numbers display as-is:
5→5
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:
- Navigate to Settings Catalog policy with multiple settings (10+)
- Locate search box above settings list
- Type "defender" in search box
- Verify: Only settings with "defender" in name/description remain visible
- Clear search box
- Verify: All settings reappear
- Test case-insensitive search: "DEFENDER"
- 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:
- Login to Filament admin
- Navigate to Policies list
- Select Settings Catalog policy
- Verify Settings tab active by default
- Scroll through grouped settings
- Expand/Collapse accordion groups
- Hover over truncated values (tooltips)
- Click copy buttons
- Use search filter
- Switch to JSON tab
- Switch back to Settings tab
- 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)