fix(deps): migrate FluentAssertions to AwesomeAssertions 8.x#114
Merged
Conversation
Closes #98. FluentAssertions v8+ is governed by the Xceed Commercial license and emits a runtime warning on every test run requiring a paid subscription for commercial use. AwesomeAssertions is the community Apache 2.0 fork of FluentAssertions v7. Why AwesomeAssertions 8.x specifically (not 9.x or alternatives): - AwesomeAssertions 8.x kept the FluentAssertions namespace verbatim — package rename only, ZERO source changes across all 19 test files. v9 renames to AwesomeAssertions namespace; deferred to a follow-up PR. - 6 named maintainers + Tidelift backing + 19 releases since the early-2025 fork = strongest fork-as-strategy position in recent .NET history (case studies: Moq, IdentityServer4, ImageSharp). - API-compatible exit path remains: if the fork stalls in 2027, switch to Shouldly or paid Xceed without re-paying the namespace cost. - Shouldly was considered but requires rewriting every assertion site (different invocation model: x.ShouldBe(y) vs x.Should().Be(y); no BeOneOf, ThrowAsync invocation flips). Changes: - ExpertiseApi.Tests.csproj: PackageReference Include="FluentAssertions" Version="8.*" → Include="AwesomeAssertions" Version="8.*" - .github/dependabot.yml: added ignore rule for the original FluentAssertions package so future Dependabot PRs cannot re-introduce the commercial v8 Validation: - dotnet build: 0 errors, 219 warnings (same baseline) - 86/86 unit tests pass - No Xceed commercial-license warning in test output
TheSemicolon
pushed a commit
that referenced
this pull request
May 4, 2026
AwesomeAssertions 9.x renamed the namespace from FluentAssertions to AwesomeAssertions. Hoist the import to GlobalUsings.cs and drop the per-file 'using FluentAssertions;' across 18 test files. The previous global usings (Xunit, Microsoft.EntityFrameworkCore) are preserved. This was the deferred follow-up scoped out of PR #114 (the v8.x package rename that closed #98). The Dependabot bump that triggered this PR (Bump AwesomeAssertions 8.2.0 → 9.4.0) carries the v8.x → 9.x package change; this commit completes the namespace migration so the build compiles. Branch was rebased onto current dev to pick up PR7a/PR7b/PR7c (issue #101) before the sweep, so the diff against dev shows only this PR's changes. Validation: - dotnet build: 0 errors, 0 warnings - dotnet test --filter Unit: 86/86 pass - dotnet format analyzers --verify-no-changes: exit 0
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
1 similar comment
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #98.
FluentAssertions v8+ is governed by the Xceed Commercial license and emits a runtime warning on every test run requiring a paid subscription for commercial use. AwesomeAssertions is the community Apache 2.0 fork of FluentAssertions v7.
Why AwesomeAssertions 8.x specifically (not 9.x or alternatives)
FluentAssertionsnamespace verbatim — package rename only, zero source changes across all 19 test files. v9 renames toAwesomeAssertionsnamespace; deferred to a follow-up PR.x.ShouldBe(y)vsx.Should().Be(y); noBeOneOf;ThrowAsyncinvocation order flips).Full research summary in the conversation that produced this PR; key liveliness signals:
Changes
tests/ExpertiseApi.Tests/ExpertiseApi.Tests.csproj:<PackageReference Include="FluentAssertions" Version="8.*" />→<PackageReference Include="AwesomeAssertions" Version="8.*" />plus a comment explaining the choice.github/dependabot.yml: added anignorerule for the originalFluentAssertionspackage so future Dependabot PRs cannot re-introduce the commercial v8Type of Change
feat— new featurefix— bug fixdocs— documentation onlychore— maintenancerefactor— restructuring without behavior changetest— adding or updating testsci— CI/CD changesstyle— formatting or linting fixes!to PR title)Test Plan
dotnet restore— cleandotnet build ExpertiseApi.slnx -c Release— 0 errors, 219 warnings (same baseline)dotnet test --filter "FullyQualifiedName~Unit"— 86/86 passChecklist
Follow-ups
global using AwesomeAssertions;inGlobalUsings.cs+ remove per-fileusing FluentAssertions;)Closes #98