3.9 KiB
3.9 KiB
phase, slug, status, nyquist_compliant, wave_0_complete, created
| phase | slug | status | nyquist_compliant | wave_0_complete | created |
|---|---|---|---|---|---|
| 2 | permissions | draft | false | false | 2026-04-02 |
Phase 2 — Validation Strategy
Per-phase validation contract for feedback sampling during execution.
Test Infrastructure
| Property | Value |
|---|---|
| Framework | xUnit 2.9.3 |
| Config file | none — runner picks up via xunit.runner.visualstudio |
| Quick run command | dotnet test SharepointToolbox.Tests\SharepointToolbox.Tests.csproj -x |
| Full suite command | dotnet test SharepointToolbox.slnx |
| Estimated runtime | ~15 seconds |
Sampling Rate
- After every task commit: Run
dotnet test SharepointToolbox.Tests\SharepointToolbox.Tests.csproj -x - After every plan wave: Run
dotnet test SharepointToolbox.slnx - Before
/gsd:verify-work: Full suite must be green - Max feedback latency: 15 seconds
Per-Task Verification Map
| Task ID | Plan | Wave | Requirement | Test Type | Automated Command | File Exists | Status |
|---|---|---|---|---|---|---|---|
| 2-??-01 | Wave 0 | 0 | PERM-01, PERM-04 | unit | dotnet test --filter "FullyQualifiedName~PermissionsServiceTests" |
❌ W0 | ⬜ pending |
| 2-??-02 | Wave 0 | 0 | PERM-02 | unit | dotnet test --filter "FullyQualifiedName~PermissionsViewModelTests" |
❌ W0 | ⬜ pending |
| 2-??-03 | Wave 0 | 0 | PERM-03 | unit | dotnet test --filter "FullyQualifiedName~PermissionEntryClassificationTests" |
❌ W0 | ⬜ pending |
| 2-??-04 | Wave 0 | 0 | PERM-05 | unit | dotnet test --filter "FullyQualifiedName~CsvExportServiceTests" |
❌ W0 | ⬜ pending |
| 2-??-05 | Wave 0 | 0 | PERM-06 | unit | dotnet test --filter "FullyQualifiedName~HtmlExportServiceTests" |
❌ W0 | ⬜ pending |
| 2-??-06 | Existing | 1 | PERM-07 | unit (existing) | dotnet test --filter "FullyQualifiedName~SharePointPaginationHelperTests" |
✅ Phase 1 | ⬜ pending |
Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky
Wave 0 Requirements
SharepointToolbox.Tests/Services/PermissionsServiceTests.cs— stubs for PERM-01, PERM-04 (via mockIPermissionsServiceinterface)SharepointToolbox.Tests/ViewModels/PermissionsViewModelTests.cs— stubs for PERM-02 (multi-site loop)SharepointToolbox.Tests/Services/PermissionEntryClassificationTests.cs— stubs for PERM-03 (external user, principal type classification)SharepointToolbox.Tests/Services/Export/CsvExportServiceTests.cs— stubs for PERM-05SharepointToolbox.Tests/Services/Export/HtmlExportServiceTests.cs— stubs for PERM-06- Interface
IPermissionsServicein main project — needed for ViewModel mocking
Note: CSOM live tests marked [Trait("Category", "Integration")] and skipped in automated suite — same pattern as Phase 1.
Manual-Only Verifications
| Behavior | Requirement | Why Manual | Test Instructions |
|---|---|---|---|
| HTML report is sortable, filterable, groupable by user in a browser | PERM-06 | Browser rendering, JS interaction cannot be automated without E2E framework | Open exported HTML in Edge/Chrome; verify sort on column headers, filter input, and group-by-user toggle |
| Multi-site scan returns results from 2+ sites | PERM-02 | Requires live SharePoint admin tenant | Run multi-site scan on 2 test sites; verify rows from both URLs appear in results |
| 5,000-item library returns complete results | PERM-07 | Requires large real library | Scan a library with >5,000 items; compare total count to SharePoint admin UI |
Validation Sign-Off
- All tasks have
<automated>verify or Wave 0 dependencies - Sampling continuity: no 3 consecutive tasks without automated verify
- Wave 0 covers all MISSING references
- No watch-mode flags
- Feedback latency < 15s
nyquist_compliant: trueset in frontmatter
Approval: pending