Skip to content

Move signature help and hover tests to the end-to-end tier - #686

Draft
Firehed wants to merge 43 commits into
e2e-disk-changesfrom
e2e-hover-signature-help
Draft

Firehed wants to merge 43 commits into
e2e-disk-changesfrom
e2e-hover-signature-help

Conversation

@Firehed

@Firehed Firehed commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Summary

Stacked on #685.

Moves the signature help and hover suites onto the end-to-end tier.

Request steps

  • Hover checks Shows(...) and Hides(...), fragments of the content, Formatted(MarkupKind), and NoAnswer(). HoverContent decodes the MarkupContent form this server sends.
  • SignatureHelp checks the active signature: SignatureShows(...) and DocumentationShows(...), fragments of the label and documentation, and ActiveParameter(index); plus SignatureCount(n) and NoAnswer() on the whole answer. SignatureHelpResult decodes the answer with the protocol's defaults for the active signature and parameter.

Scripts

  • One script per case of both suites, opening the same files the originals opened. Each expectation is one of the original's assertions.
  • Built-in cases are scripts too: array_map signature help, and hover on sort, ArrayObject::getArrayCopy, Exception::$message, and DateTime::getTimestamp through clone and ??. Their full answers were identical on PHP 8.4, 8.5, and 8.6 in CI. The README now allows a built-in in a script when its output is the same on every version in the matrix, instead of keeping built-ins out.
  • ClientCapabilities can declare markdown hover support (textDocument.hover.contentFormat). One script in transcripts/ expects a markdown answer and locks its fenced format. Nothing exercised markdown hover before.
  • The inline "hover inside a comment" case uses a new fixture, EdgeCases/HoverInComment.php.

Unit tests

ExpressionResolutionTest covers the paths only the hover suite reached:

  • a foreach element type taken from a @return User[] docblock: through a use import, fully qualified, naming no known class, and with no element type;
  • clone keeping the copied type;
  • ?? resolving through its left side.

The tests stub the symbol source and type source with only what each case needs.

Originals

HoverHandlerIntegrationTest and SignatureHelpHandlerIntegrationTest are removed.

Coverage: unchanged, file by file.

Noted, not changed

A single-line docblock (/** Text. */) reaches hover and signature help documentation with its closing */, for example "Static method documentation. */". The expectations check fragments, so they hold whether or not this is fixed. Tracked in #689.

🤖 Generated with Claude Code

Firehed and others added 6 commits October 3, 2026 17:23
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.67%. Comparing base (636ff05) to head (9ea8e79).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@                 Coverage Diff                 @@
##             e2e-disk-changes     #686   +/-   ##
===================================================
  Coverage               99.67%   99.67%           
  Complexity               1900     1900           
===================================================
  Files                     135      135           
  Lines                    4873     4873           
===================================================
  Hits                     4857     4857           
  Misses                     16       16           

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

Firehed and others added 12 commits October 3, 2026 17:33
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Firehed
Firehed added this pull request to stack #688 October 4, 2026 01:49
Firehed and others added 9 commits October 3, 2026 21:06
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Firehed and others added 16 commits October 3, 2026 21:10
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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