Skip to content

test: consolidate the Issue*Test classes of the openCypher path procedures - #11678

Merged
robfrank merged 1 commit into
mainfrom
test/consolidate-path-issue-tests
Nov 13, 2026
Merged

robfrank merged 1 commit into
mainfrom
test/consolidate-path-issue-tests

Conversation

@robfrank

@robfrank robfrank commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

What does this PR do?

Folds the 7 Issue*Test classes of engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/ into feature-named classes. Each source class becomes a @Nested class with its fixture unchanged (own database path, TestHelper base where it had one); the issue Javadoc moves onto the nested class so the issue numbers stay searchable.

Class Nested classes (source) Tests
PathFiltersTest (new) FilterSyntax (#10025), NodeLists (#10049), Parsing (was PathFilterParsingTest) 35
PathExpandConfigTest (existing, now an outer class) Levels (its own 3 tests), Uniqueness (#10049), ExpansionLimits (#10049), StreamClosedByCall (#10150) 38
PathGhostEntriesTest (new) GhostEdge (#10148), GhostEndpoint (was PathSubgraphGhostEndpointTest) 15
PathSubgraphAllRelationshipsTest rename of Issue10048SubgraphAllRelationshipsTest 8
PathSubgraphComponentTest unchanged (static @BeforeAll fixture) 10

11 files -> 5, no Issue*Test left in the package.

Motivation

Same cleanup as #11675 and #11677: one class per feature instead of one per issue. The outer classes carry no lifecycle of their own, so no nested test pays for an extra database.

Related issues

Follow-up of #11677 (it left the procedures/path sub-package out).

Additional Notes

  • No duplicates removed: a whitespace-normalized comparison of all 106 test bodies found no identical pair. The near-overlaps (procedure-level vs parser-level filter refusals, two limit tests on different graphs) exercise different layers.
  • No references to the old class names exist outside the package.

Checklist

  • mvn -o -pl engine -am test -Dtest='com.arcadedb.query.opencypher.procedures.path.**': 106 run, 0 failures (106 before the change, per class sums match)
  • Test-only change, no production code touched

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests
    • Reorganized path-procedure test coverage, consolidating checks for filtering, node-list options, traversal behavior, and parsing.
    • Added coverage for missing graph records, traversal limits, uniqueness modes, timeouts, heap limits, and procedure-stream cleanup.
    • No user-facing behavior changes are indicated in this pull request.

…dures

Fold the 7 Issue*Test classes of query/opencypher/procedures/path into
feature-named classes, each source class becoming a @nested class with its
own fixture unchanged:

- PathFiltersTest: FilterSyntax (#10025), NodeLists (#10049), Parsing
  (was PathFilterParsingTest)
- PathExpandConfigTest: Levels (its own tests), Uniqueness (#10049),
  ExpansionLimits (#10049), StreamClosedByCall (#10150)
- PathGhostEntriesTest: GhostEdge (#10148), GhostEndpoint (was
  PathSubgraphGhostEndpointTest)
- Issue10048SubgraphAllRelationshipsTest renamed to
  PathSubgraphAllRelationshipsTest

No test removed: 106 before, 106 after, all green.
@mergify

mergify Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

This pull request is merged.

@codacy-production

codacy-production Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Coverage ∅ diff coverage · -4.38% coverage variation

Metric Results
Coverage variation ✅ -4.38% coverage variation
Diff coverage ✅ ∅ diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (62c44cb) 283382 249567 88.07%
Head commit (2a094d2) 316990 (+33608) 265280 (+15713) 83.69% (-4.38%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#11678) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@claude

claude Bot commented Nov 13, 2026

Copy link
Copy Markdown

Review: test-only consolidation of the Issue*Test classes in the openCypher path procedures into PathFiltersTest, PathGhostEntriesTest and PathExpandConfigTest.

  • The @Test count is unchanged: 88 removed and 88 added, so no test was dropped.
  • Only test files change, with no production code, dependencies or security-relevant changes.
  • Naming the classes after the feature instead of the issue number is better for maintenance.

I did not run the tests. Please confirm the consolidated classes pass in CI. In particular, check that tests which used the same database path (./target/databases/...) still don't collide, and that any @Timeout or timing-based tests, such as the expansion limits test, still follow the StallAwareStopwatch guidance in CLAUDE.md.

LGTM from my side.

@coderabbitai

coderabbitai Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Path procedure test coverage was reorganized into consolidated filter, expansion, stream-lifecycle, and ghost-entry test classes. The updated tests cover filter syntax and node-list options, expansion bounds and uniqueness, stream closure, and handling of missing graph records.

Changes: Path procedure test coverage

Layer / File(s) Summary
Filter syntax and node-list coverage
engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathFiltersTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10025PathFilterSyntaxTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathNodeListsTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathFilterParsingTest.java
Filter syntax, parsing, schema validation, and node-list behavior are covered in PathFiltersTest. The earlier standalone filter and node-list test classes were removed.
Expansion configuration and stream lifecycle
engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathExpandConfigTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathExpansionLimitsTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathUniquenessTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10150ProcedureStreamClosedByCallTest.java
PathExpandConfigTest adds coverage for level bounds, uniqueness, expansion limits, timeouts, heap tracking, and procedure stream closure. Related standalone test classes were removed.
Ghost graph entry coverage
engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathGhostEntriesTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10148PathReachabilityGhostEdgeTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathSubgraphGhostEndpointTest.java, engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathSubgraphAllRelationshipsTest.java
PathGhostEntriesTest covers missing edge and vertex records across path procedures. Earlier ghost-entry test classes were removed, and the subgraph relationship test class was renamed.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Other

Suggested reviewers: lvca

Merge Risk: Minimal · up to 2a094

This change only reorganizes test code and touches no production behavior. No merge-blocking risk was identified.

Pre-merge checks: Passed 4

Check name Status Explanation
Title check Passed The title names the main change: consolidating the IssueTest classes of the openCypher path procedures. The title is a short, single sentence and matches the changeset, which deletes the IssueTest f…
Description check Passed The description follows the repository template. It has 'What does this PR do?', 'Motivation', 'Related issues', 'Additional Notes', and 'Checklist' sections, and each is filled in. It explains the cl…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the main change: consolidating the IssueTest classes of the openCypher path procedures. The title is a short, single sentence and matches the changeset, which deletes the IssueTest files and folds their tests into feature-named classes. It uses the conventional 'test:' prefix.

Full details: Description check

Explanation

The description follows the repository template. It has 'What does this PR do?', 'Motivation', 'Related issues', 'Additional Notes', and 'Checklist' sections, and each is filled in. It explains the class mapping, the reason for the change, the test verification, and that no production code changed. The template's 'Related issues' section lists a follow-up to #11677 rather than a fixed issue, which is appropriate. The checklist's 'mvn clean package' item is replaced by a scoped 'mvn -o -pl engine -am test' run, so the author did not confirm the full build. That gap is minor for a test-only change.

Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a824357d-2643-4306-bd60-d1c41265420e
Commits

Reviewing files that changed from the base of the PR and between 62c44cb and 2a094d2.

Files selected for processing: 12

  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10025PathFilterSyntaxTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathExpansionLimitsTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathNodeListsTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathUniquenessTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10148PathReachabilityGhostEdgeTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10150ProcedureStreamClosedByCallTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathExpandConfigTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathFilterParsingTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathFiltersTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathGhostEntriesTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathSubgraphAllRelationshipsTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathSubgraphGhostEndpointTest.java
Files with no reviewable changes: 8

  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10025PathFilterSyntaxTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathExpansionLimitsTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathNodeListsTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10049PathUniquenessTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10148PathReachabilityGhostEdgeTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/Issue10150ProcedureStreamClosedByCallTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathFilterParsingTest.java
  • engine/src/test/java/com/arcadedb/query/opencypher/procedures/path/PathSubgraphGhostEndpointTest.java

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.

@robfrank
robfrank merged commit 2eaf390 into main Nov 13, 2026
36 of 37 checks passed
@codecov

codecov Bot commented Nov 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.01%. Comparing base (62c44cb) to head (2a094d2).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #11678      +/-   ##
==========================================
- Coverage   80.01%   80.01%   -0.01%     
==========================================
  Files        2463     2463              
  Lines      283382   283382              
  Branches    62325    62325              
==========================================
- Hits       226761   226744      -17     
- Misses      33857    33871      +14     
- Partials    22764    22767       +3     

☔ View full report in Codecov by Harness.
📢 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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