Skip to content

merge feature/regression test to main branch#10

Merged
peterjohncasasola merged 9 commits into
mainfrom
feature/regression-test
Jul 15, 2026
Merged

merge feature/regression test to main branch#10
peterjohncasasola merged 9 commits into
mainfrom
feature/regression-test

Conversation

@peterjohncasasola

Copy link
Copy Markdown
Owner

No description provided.

…read-safe registries and tests

- FlexQueryCore: immutable after first Configure(), Reset() for test isolation
- FlexQueryEFCore: immutable after first Configure(), Reset() for test isolation
- FlexQueryDapper: immutable after first Configure(), Reset() for test isolation
- QueryParserRegistry: internal static class with thread-safe static methods
- FieldRegistry/OperatorRegistry: remain internal static, no DI
- FqlSortParser: fixed incomplete class declaration
- Added Diagnostics/FlexQueryDiagnosticsCollectorTests.cs
- Added AspNetCore/FieldAccessFilterTests.cs
- Updated DI configuration tests for immutable pattern
…i, and Diagnostics

- OpenApi: AddFlexQueryOpenApi, transformers, documentation registry, examples
- Diagnostics: BuildReport timeline/math, thread-safety, ConsoleExecutionListener
- AspNetCore: FieldAccessFilter merge/precedence, HttpContextExtensions resolution
- Core: FilterExpressionBuilder (string ops, in/between, null, type safety)
- Core: TypeHelper enum/date/guid conversion, SelectParser, SortParser
- Core: QueryParserRegistry resolve/register contract
- Core: FilterComposer, FilterNormalizer, FilterAnalyzer
- Core: WildcardMatcher, OperatorRegistry, FieldRegistry, SafePropertyResolver
- Core: GroupByBuilder, AggregateResultBuilder, KeysetPaginationBuilder
- Core: BoundedConcurrentCache, QueryCacheManager, QueryCacheKeyBuilder
- Core: ExpressionMethodCache, FieldResolver, ProjectionEnhancer/MetadataBuilder
- Core: FlexQueryCoreTests, PagingOptionsTests, QueryOptionsTests
- Validation: ValidationEdgeCaseTests for per-rule coverage
- Fix: DialectTests Like assertion (was dead), KeysetPaginationTests naming
- Fix: AspNetCore FieldAccessFilter registration assertion
- Infra: Add InternalsVisibleTo for OpenApi.Tests
- Move test files from flat Tests/ into feature folders:
  Adapters/ (AgGrid, Kendo), Builders/, Caching/, Filters/,
  Integration/, Parsers/, Projection/, Security/, Validation/
- Move Diagnostics/DebugTests.cs from Tests/
- Move Api/Dapper/ integration tests to Dapper/Integration/
- Remove duplicate entity fixtures from Models/ (live in Fixtures/)
- Update all namespaces to match new folder structure
- Fix: QueryParserRegistryTests.Resolve_UnregisteredSyntax_Throws
  now dynamically checks all registered syntaxes, removing flaky
  test-ordering dependency on static QueryParserRegistry state

1382 tests passed, 25 OpenApi tests passed
Break the monolithic 1373-line ValidationRuleTests.cs into 5 focused files:
- HavingAliasIntegrityRuleTests.cs (5 tests)
- GovernanceConfigValidationRuleTests.cs (16 tests)
- IncludeAccessValidationRuleTests.cs (7 tests)
- DefaultProjectionRuleTests.cs (11 tests)
- FieldAccessValidationRuleTests.cs (42 tests)

1463 tests passed, 25 OpenApi tests passed
… unit tests

SqlCountBuilderTests: 17 tests for ExtractCountSql covering subquery-safe
ORDER BY/LIMIT/OFFSET stripping, parentheses awareness, and edge cases.

SqlHavingBuilderTests: 28 tests for Build covering all 6 operators,
all 5 aggregate functions, operator alias normalization, SQLite double
conversion, dialect-specific quoting (SQL Server, PostgreSQL, MySQL),
table alias prefixing, and the null-having empty-string path.

SqlSelectBuilderTests: 25 tests for BuildAggregateSelectParts (all
aggregate functions, multiple aggregates, table aliases),
BuildSelectClause (no-select fallback, explicit select, DISTINCT,
GROUP BY + aggregates, aliases, navigation columns, dialect quoting,
table aliases), and BuildFlatSelectClause (no-nav root columns,
single/multi-level navigation joins, FlatMixed root scalars, branching
nav path error, dialect quoting).

1533 total tests, 0 failures.
SqlJoinBuilderTests: 14 tests covering empty select tree, inferred joins from
projection tree, multi-level navigation, explicit Includes, filtered Includes
(Expand), duplicate path deduplication, unknown path skip, filtered navigation
in select tree, table alias in join condition, case-insensitive filter,
multiple filtered includes, and dialect-specific quoting (PostgreSQL, MySQL).

1559 total tests, 0 failures.
@vercel

vercel Bot commented Jul 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
flexquery Ready Ready Preview, Comment Jul 15, 2026 7:13am

@peterjohncasasola
peterjohncasasola merged commit a06678d into main Jul 15, 2026
4 checks passed
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