Files
Sharepoint-Toolbox/.planning/phases/11-html-export-branding/11-VALIDATION.md
Dev df6f4949a8 docs(13-02): complete User Directory ViewModel plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 16:44:56 +02:00

5.2 KiB

phase, slug, status, nyquist_compliant, wave_0_complete, created
phase slug status nyquist_compliant wave_0_complete created
11 html-export-branding draft true false 2026-04-08

Phase 11 — 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 SharepointToolbox.Tests --filter "FullyQualifiedName~Export" --no-build -q
Full suite command dotnet test SharepointToolbox.Tests --no-build
Estimated runtime ~15 seconds

Sampling Rate

  • After every task commit: dotnet test SharepointToolbox.Tests --filter "FullyQualifiedName~Export" --no-build -q
  • After every plan wave: dotnet test SharepointToolbox.Tests --no-build
  • 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
11-01-01 01 1 BRAND-05 unit dotnet test --filter "FullyQualifiedName~BrandingHtmlHelper" --no-build No (W0) pending
11-02-01 02 2 BRAND-05 unit dotnet test --filter "FullyQualifiedName~Export" --no-build -q Yes (extend) pending
11-02-02 02 2 BRAND-05 unit same as above Yes (extend) pending
11-03-01 03 3 BRAND-05 integration dotnet build --no-restore -warnaserror && dotnet test --no-build -q Yes (compile check) pending
11-04-01 04 1 BRAND-04 unit dotnet test --filter "FullyQualifiedName~ProfileService" --no-build Yes (extend) pending
11-04-02 04 1 BRAND-04 unit dotnet test --filter "FullyQualifiedName~SettingsViewModel or FullyQualifiedName~ProfileManagement" --no-build No (W0) pending

Status: pending / green / red / flaky


Wave 0 Requirements

  • SharepointToolbox.Tests/Services/Export/BrandingHtmlHelperTests.cs — covers BRAND-05a/b/c (both logos, single logo, no logos)
  • SharepointToolbox.Tests/ViewModels/SettingsViewModelLogoTests.cs — covers MSP logo browse/clear commands
  • SharepointToolbox.Tests/ViewModels/ProfileManagementViewModelLogoTests.cs — covers client logo + auto-pull (BRAND-04)
  • Extend existing HtmlExportServiceTests.cs — covers BRAND-05d/e (branding present/absent)
  • Extend existing SearchExportServiceTests.cs, StorageHtmlExportServiceTests.cs, DuplicatesHtmlExportServiceTests.cs, UserAccessHtmlExportServiceTests.cs — covers BRAND-05f

Existing infrastructure covers test framework setup.


Requirements -> Test Map

Req ID Behavior Test Type Automated Command File Exists?
BRAND-05a BrandingHtmlHelper produces correct HTML for both logos unit dotnet test --filter "FullyQualifiedName~BrandingHtmlHelper" --no-build -q No - Wave 0
BRAND-05b BrandingHtmlHelper produces empty string for no logos unit same as above No - Wave 0
BRAND-05c BrandingHtmlHelper handles single logo (MSP only / client only) unit same as above No - Wave 0
BRAND-05d HtmlExportService.BuildHtml with branding includes header unit dotnet test --filter "FullyQualifiedName~HtmlExportServiceTests" --no-build -q Yes (extend)
BRAND-05e HtmlExportService.BuildHtml without branding unchanged unit same as above Yes (extend)
BRAND-05f Each of 5 exporters injects branding header between body and h1 unit dotnet test --filter "FullyQualifiedName~Export" --no-build -q Partially (extend existing)
BRAND-04a Auto-pull handles 404 (no branding) gracefully unit dotnet test --filter "FullyQualifiedName~AutoPull" --no-build -q No - Wave 0
BRAND-04b Auto-pull handles empty stream gracefully unit same as above No - Wave 0

Manual-Only Verifications

Behavior Requirement Why Manual Test Instructions
MSP logo appears in exported HTML report BRAND-05 Requires visual inspection of rendered HTML 1. Import MSP logo 2. Run permissions export 3. Open HTML in browser 4. Verify logo in header
Both logos side by side in report header BRAND-05 Requires visual layout check 1. Import MSP and client logo 2. Run any export 3. Verify both logos rendered side by side
No broken images when no logo configured BRAND-05 Requires visual regression check 1. Clear all logos 2. Run export 3. Compare output to pre-branding export
Auto-pull from tenant without Entra branding BRAND-04 Requires live tenant without branding 1. Select tenant without Entra branding 2. Click auto-pull 3. Verify silent fallback (no crash, no broken state)

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: approved