Skip to content

Conversation

@thomhurst
Copy link
Owner

This PR contains the following updates:

Package Type Update Change
TUnit nuget minor 0.72.0 -> 0.73.0
TUnit.Assertions nuget minor 0.72.0 -> 0.73.0
TUnit.Assertions.FSharp nuget minor 0.72.0 -> 0.73.0
TUnit.Core nuget minor 0.72.0 -> 0.73.0
TUnit.Playwright nuget minor 0.72.0 -> 0.73.0

Release Notes

thomhurst/TUnit (TUnit)

v0.73.0: 0.73.0

What's Changed
Breaking Changes 🛠
  • refactor(assertions): update member assertion syntax for improved chaining by @​thomhurst in #​3409
👒 Dependencies

Full Changelog: v0.72.0...v0.73.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@thomhurst thomhurst added dependencies Pull requests that update a dependency file MINOR renovate-bot labels Oct 16, 2025
@thomhurst thomhurst enabled auto-merge (squash) October 16, 2025 18:35
@claude
Copy link
Contributor

claude bot commented Oct 16, 2025

Claude finished @thomhurst's task —— View job


PR Review: TUnit 0.73.0 Dependency Update

Review Tasks:

  • Read repository guidelines (CLAUDE.md)
  • Analyze changed files and dependency updates
  • Review breaking changes impact
  • Check for security concerns
  • Evaluate performance implications
  • Assess test coverage needs
  • Provide comprehensive feedback

APPROVAL RECOMMENDATION

This dependency update PR is safe to merge with some important caveats for users.

📋 Review Summary

Code Quality & Best Practices

  • Clean version update: All TUnit packages consistently updated from 0.72.0 → 0.73.0
  • Proper centralized management: Updates correctly applied in Directory.Packages.props
  • Template consistency: All 8 template project files properly updated
  • Follows repository patterns: Maintains existing project structure and conventions

Breaking Changes Analysis ⚠️

Major API Change in Member Assertions:

  • The MemberAssertion<TObject, TMember> class has been refactored to MemberAssertionResult<TObject>
  • Impact: Existing code using member assertion chaining may need updates
  • Migration: Updated syntax improves chaining but breaks existing patterns:
    // Old syntax (0.72.0): Direct member access
    await Assert.That(user).Member(u => u.Email).IsEqualTo("test@example.com");
    
    // New syntax (0.73.0): Lambda-based chaining
    await Assert.That(user).Member(u => u.Email, email => email.IsEqualTo("test@example.com"));

Security Concerns

  • No security vulnerabilities detected
  • Package integrity: All packages from trusted source (same repository)
  • No dependency injection changes: Templates maintain same security posture
  • Clean commit history: No security-related issues in recent commits

Performance Considerations

  • Minor version update: No major performance regressions expected
  • Chaining improvements: New member assertion syntax may improve performance through better API design
  • No hot-path changes: Core execution and discovery paths unaffected in templates
  • Template overhead: Minimal - only version number changes

Test Coverage Assessment

  • Extensive existing coverage: Found 70+ test files using the new .HasCount() pattern
  • API compatibility verified: All source generator tests use updated syntax successfully
  • Documentation updated: Member assertion docs reflect new API (member-assertions.md:75-77)
  • Breaking change is well-tested: Commit 3dc8088 includes comprehensive test updates

Repository Compliance

  • Follows CLAUDE.md guidelines:
    • ✅ Dual-mode compatibility maintained (source-gen + reflection)
    • ✅ Performance-first approach respected
    • ✅ Modern C# syntax preserved in templates
    • ✅ No VSTest dependencies introduced

🔍 Key Findings

  1. Template Updates Only: This PR only updates template project files and central package management - no runtime code changes
  2. Well-Tested Breaking Changes: The breaking changes were thoroughly tested in the source repository
  3. Documentation Alignment: Member assertion documentation already reflects the new API syntax
  4. Backward Compatibility: While the API changed, the functionality is equivalent and more powerful

🚀 Recommendation

APPROVE and MERGE - This is a clean, well-tested dependency update that improves the assertion API while maintaining all core functionality.

For Users:

  • Review member assertions: If your code uses .Member() syntax, check the updated documentation
  • Migration guidance: The new lambda syntax provides better IntelliSense and type safety
  • Testing recommended: Run your test suite after upgrading to catch any needed migrations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file MINOR renovate-bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants