Skip to content

Add Trax.Core.Testing: reusable architecture-guard foundation#24

Merged
Theauxm merged 3 commits into
mainfrom
feat/architecture-guard-packages
Jun 1, 2026
Merged

Add Trax.Core.Testing: reusable architecture-guard foundation#24
Theauxm merged 3 commits into
mainfrom
feat/architecture-guard-packages

Conversation

@Theauxm

@Theauxm Theauxm commented Jun 1, 2026

Copy link
Copy Markdown
Member

Introduces Trax.Core.Testing, the shared foundation for per-repo architecture-guard packages: repo-scanning infrastructure (RepoRoot/SourceFiles/SourceText), ArchitectureGuardOptions, GuardResult, and hygiene/repo-convention checkers (no [Ignore], no legacy asserts, no fixed delays, Directory.Build.props version, cross-repo Version="1.*").

Framework-agnostic by design (matching the *.Tests.ArrayLogger precedent): each checker returns an offender list a consumer asserts on with its own test framework, so the package carries no NUnit/FluentAssertions dependency. 11 unit tests against synthetic fixture trees.

Part of a six-repo change. Merge in dependency order so each repo's package is published before its consumers: Trax.Core → Trax.Effect / Trax.Mediator → Trax.Api → Trax.Samples → Trax.Docs.

… hygiene checkers

Framework-agnostic guard checkers (RepoRoot/SourceFiles/SourceText, ArchitectureGuardOptions, GuardResult) plus hygiene/repo-convention checkers (no [Ignore], no legacy asserts, no fixed delays, Directory.Build.props version, cross-repo Version=1.*). No test-framework dependency: each checker returns an offender list a consumer asserts on with its own framework. 11 unit tests.
@codecov

codecov Bot commented Jun 1, 2026

Copy link
Copy Markdown

Theauxm added 2 commits June 1, 2026 16:15
Each guard becomes an abstract [TestFixture] with the [Test] methods pre-written; consumers subclass it, override the config (options, types, assemblies), add [TestFixture], and run dotnet test. The framework-agnostic checker methods remain for non-NUnit use.
Adds self-test fixtures that run each base fixture as a consumer would (subclass + configure against a synthetic repo), plus direct tests for RepoRoot resolution, SourceFiles build-output exclusion, and the RepoConventionGuards missing-file / unparseable-project branches. Closes the coverage gaps Codecov flagged on the new code.
@Theauxm
Theauxm merged commit 4674c66 into main Jun 1, 2026
2 checks passed
@Theauxm
Theauxm deleted the feat/architecture-guard-packages branch June 1, 2026 23:00
Theauxm added a commit that referenced this pull request Jun 1, 2026
Release trigger: the originating change (#24) squash-merged with a non-conventional
title, so semantic-release classified it as a non-release and no package was published.
Merging this lands a feat: commit on main, cutting the release that publishes
Trax.Core.Testing (and the other Trax.Core packages at the bumped version).
@traxsharp

traxsharp Bot commented Jun 1, 2026

Copy link
Copy Markdown

This PR is included in version 1.6.0

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant