Files
Sharepoint-Toolbox/.planning/phases/10-branding-data-foundation/10-VALIDATION.md
2026-04-08 11:44:24 +02:00

3.1 KiB

phase, slug, status, nyquist_compliant, wave_0_complete, created
phase slug status nyquist_compliant wave_0_complete created
10 branding-data-foundation draft false false 2026-04-08

Phase 10 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.


Test Infrastructure

Property Value
Framework xUnit 2.9.3 + Moq 4.20.72
Config file SharepointToolbox.Tests/SharepointToolbox.Tests.csproj
Quick run command dotnet test --filter "Category=Unit" --no-build
Full suite command dotnet test
Estimated runtime ~15 seconds

Sampling Rate

  • After every task commit: Run dotnet test --filter "Category=Unit" --no-build
  • After every plan wave: Run dotnet test
  • 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
10-01-01 01 1 BRAND-01 unit dotnet test --filter "FullyQualifiedName~BrandingRepositoryTests" --no-build W0 pending
10-01-02 01 1 BRAND-06 unit dotnet test --filter "FullyQualifiedName~BrandingServiceTests" --no-build W0 pending
10-01-03 01 1 BRAND-03 unit dotnet test --filter "FullyQualifiedName~ProfileServiceTests" --no-build extend pending
10-02-01 02 1 UDIR-02 unit dotnet test --filter "FullyQualifiedName~GraphUserDirectoryServiceTests" --no-build W0 pending

Status: pending · green · red · ⚠️ flaky


Wave 0 Requirements

  • SharepointToolbox.Tests/Services/BrandingRepositoryTests.cs — stubs for BRAND-01 persistence round-trip
  • SharepointToolbox.Tests/Services/BrandingServiceTests.cs — stubs for BRAND-06 magic bytes, compression, rejection
  • SharepointToolbox.Tests/Services/GraphUserDirectoryServiceTests.cs — stubs for UDIR-02 pagination
  • Extend SharepointToolbox.Tests/Services/ProfileServiceTests.cs — add BRAND-03 ClientLogo round-trip test

Existing infrastructure covers test framework setup.


Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
MSP logo survives app restart BRAND-01 Requires full app lifecycle (start, import, close, reopen) 1. Run app, import MSP logo 2. Close app 3. Reopen app 4. Verify logo still present in branding.json
Client logo isolated between tenants BRAND-03 Requires multi-profile JSON inspection 1. Import logo for Tenant A 2. Verify Tenant B profile has no logo field 3. Delete Tenant A logo 4. Verify Tenant B unaffected

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: true set in frontmatter

Approval: pending