Skip to content

test(integration): add GroupBy + Count composition test over search filter - #98

Merged
daniel3303 merged 1 commit into
masterfrom
test/add-search-groupby-count-tests
May 14, 2026
Merged

test(integration): add GroupBy + Count composition test over search filter#98
daniel3303 merged 1 commit into
masterfrom
test/add-search-groupby-count-tests

Conversation

@daniel3303

Copy link
Copy Markdown
Owner

Summary

  • Adds the first integration test that runs GroupBy(...).Select(g => new { g.Key, Count = g.Count() }) over a EF.Functions.Matches filter. The SQL shape (search predicate in WHERE + GROUP BY + aggregate) is the one behind any "hits per facet" UI.
  • A regression in ParadeDbQuerySqlGenerator that mishandles aggregate composition (e.g., search predicate pushed past the GROUP BY, or score function leaking into the aggregate scope) would slip past the existing single-row Where/Select tests.

Code changes

  • Equibles.ParadeDB.EntityFrameworkCore.IntegrationTests/SearchWithGroupByCountTests.cs — new [Fact] filtering articles by Matches(content, "models OR pasta"), grouping by Category, projecting (Category, Count()), and asserting machine-learning=2, cooking=1, and physics absent.

Test plan

  • dotnet test --filter "FullyQualifiedName~SearchWithGroupByCountTests" --framework net10.0 passes locally against a paradedb/paradedb:latest Testcontainer.

@codecov

codecov Bot commented May 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.56%. Comparing base (20cbb3f) to head (c76ad1b).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #98   +/-   ##
=======================================
  Coverage   99.56%   99.56%           
=======================================
  Files          25       25           
  Lines        1157     1157           
  Branches      128      128           
=======================================
  Hits         1152     1152           
  Misses          1        1           
  Partials        4        4           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@daniel3303
daniel3303 force-pushed the test/add-search-groupby-count-tests branch from 87bcd1c to c76ad1b Compare May 14, 2026 15:11
@daniel3303
daniel3303 merged commit 7b2e5cf into master May 14, 2026
6 checks passed
@daniel3303
daniel3303 deleted the test/add-search-groupby-count-tests branch May 14, 2026 15:13
daniel3303 added a commit that referenced this pull request May 14, 2026
…ilter (#98)

## Summary

- Adds the first integration test that runs `GroupBy(...).Select(g =>
new { g.Key, Count = g.Count() })` over a `EF.Functions.Matches` filter.
The SQL shape (search predicate in WHERE + GROUP BY + aggregate) is the
one behind any "hits per facet" UI.
- A regression in `ParadeDbQuerySqlGenerator` that mishandles aggregate
composition (e.g., search predicate pushed past the GROUP BY, or score
function leaking into the aggregate scope) would slip past the existing
single-row `Where`/`Select` tests.

## Code changes

-
`Equibles.ParadeDB.EntityFrameworkCore.IntegrationTests/SearchWithGroupByCountTests.cs`
— new `[Fact]` filtering articles by `Matches(content, "models OR
pasta")`, grouping by `Category`, projecting `(Category, Count())`, and
asserting `machine-learning=2`, `cooking=1`, and `physics` absent.

## Test plan

- [x] `dotnet test --filter
"FullyQualifiedName~SearchWithGroupByCountTests" --framework net10.0`
passes locally against a `paradedb/paradedb:latest` Testcontainer.
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