You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add integration testing infrastructure and coverage reporting (#85)
* feat: add integration testing infrastructure (Phase 1 of #55)
Add three new test projects for comprehensive integration testing:
- PPDS.Dataverse.IntegrationTests: FakeXrmEasy v3.8.0 for mocked Dataverse tests
- PPDS.Auth.IntegrationTests: Authentication flow validation
- PPDS.LiveTests: Live Dataverse connection tests with skip logic
Infrastructure includes:
- FakeXrmEasyTestsBase with middleware builder (RPL-1.5 license)
- LiveTestBase with [Trait("Category", "Integration")] for filtering
- SkipIfNoCredentials attributes for graceful credential handling
- LiveTestConfiguration reading from environment variables
CI/CD changes:
- integration-tests.yml: Approach B workflow (trusted PRs get integration tests)
- test.yml: Updated to exclude integration tests with --filter
- dependabot.yml: Added fakexrmeasy group for package updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: add code coverage reporting with Codecov (#84)
Add coverage collection and Codecov integration for visibility into
test coverage across all packages.
Changes:
- test.yml: Add --collect:"XPlat Code Coverage" and Codecov upload
- codecov.yml: Per-package thresholds matching issue #55 targets
- .gitignore: Exclude coverage/ directory
Per-package targets (informational only, no PR blocking):
- PPDS.Plugins: 95% (currently 100%)
- PPDS.Auth: 70% (currently 0% - no tests)
- PPDS.Dataverse: 60% (currently 38%)
- PPDS.Migration: 50% (currently 0% - no tests)
- PPDS.Cli: 60% (currently ~12%)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: pre-commit hook error on Windows
- Change matcher from "Bash" to "Bash(git commit:*)" so hook only
fires on commit commands, not every Bash invocation
- Use relative path instead of $CLAUDE_PROJECT_DIR which wasn't
expanding correctly on Windows
- Simplify Python script since matcher now handles filtering
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: address bot review findings
- FakeXrmEasyTestsBase: Call Context.Dispose() to prevent resource leak
- LiveDataverseSmokeTests: Fix tautology, improve assertion logic
- LiveDataverseSmokeTests: Remove redundant [Trait] (inherited from base)
- AuthenticationSmokeTests: Remove Integration trait (no external deps)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add individual comment reply syntax to review-bot-comments
Add section 5 documenting the correct gh api syntax for replying
to individual PR review comments using in_reply_to parameter.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: IXrmFakedContext doesn't implement IDisposable directly
Gemini's suggestion was incorrect - IXrmFakedContext interface doesn't
declare IDisposable. Use safe cast to dispose if runtime type supports it.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: require user approval before implementing bot suggestions
Update review-bot-comments command to make the process explicit:
1. Fetch and triage comments
2. Present summary with recommendations
3. WAIT for user approval (do NOT auto-implement)
4. Implement approved changes
5. Build and verify before committing
6. Reply to comments
Added warning about bot suggestions being wrong (e.g., Gemini suggested
calling Dispose on an interface that doesn't implement IDisposable).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: missing closing paren in settings.local.example.json
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: clean up scripts folder and add certificate generator
- Rename install-local.ps1 to Install-LocalCli.ps1 (PowerShell Verb-Noun convention)
- Delete ppds-dev.ps1 (trivial wrapper that just called dotnet run)
- Add New-TestCertificate.ps1 for generating Azure App Registration test certificates
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
0 commit comments