Skip to content

Test passing fixtures and minimum supported VS Code - #145

Open
rcosta358 wants to merge 1 commit into
codex/issue-131-vscode-smoke-testsfrom
codex/issue-132-passing-min-vscode
Open

rcosta358 wants to merge 1 commit into
codex/issue-131-vscode-smoke-testsfrom
codex/issue-132-passing-min-vscode

Conversation

@rcosta358

@rcosta358 rcosta358 commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Add an isolated passing workspace and require an explicit empty diagnostic result after Verify. Test both fixtures on stable for every branch and on the minimum supported VS Code for PRs and main; pin typings to 1.82.x.

Validated both fixtures locally and in CI on stable and 1.82.0; lint, types, and extension installation passed.

Depends on #144. Closes #132.

Generated by Codex.

@CatarinaGamboa CatarinaGamboa left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Three things, mostly about what happens when something goes wrong.

Reviewed with Claude Code (reviewer + adversarial agents per PR, findings checked against the code before posting).

const nextFixtureDiagnostics = () => new Promise<LJDiagnostic[]>((resolve) => {
const subscription = api.onDiagnostics((diagnostics) => {
if (diagnostics.some(d => d.type === 'refinement-error' && path.resolve(d.file) === uri.fsPath)) {
const matches = passing ? diagnostics.length === 0

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A regression shows up as a bare 120s timeout. This wait only resolves when the result is the expected one (empty for passing, a refinement error for failing). If the passing fixture starts getting an error, or the failing one gets none, the promise never resolves. The asserts below (including assert.deepEqual(diagnostics, []) on line 46, which can't fail) are never reached, and the failure is a timeout with no diagnostics in the output.

Suggest resolving on the first diagnostics notification for this run and asserting on it, so a failure prints what actually came back.

strategy:
fail-fast: false
matrix:
version: ${{ (github.event_name == 'pull_request' || github.ref == 'refs/heads/main') && fromJSON('["stable", "minimum"]') || fromJSON('["stable"]') }}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two things with this job:

  1. This PR removes the fork-only if that Add real VS Code integration smoke test #144 had on integration. So for same-repo PRs every push runs it twice: the push run (stable), plus the PR run (stable + minimum).
  2. Release tags only test stable. publish.yml calls this workflow with event push and ref refs/tags/v*, so neither branch of this condition matches. Releases then never test the minimum supported VS Code version.

Suggest bringing the if back, but still letting minimum run for PRs and tags. For example, put the decision in the matrix and the if, so that pushes to branches run stable, while pushes to main, tags (startsWith(github.ref, 'refs/tags/')) and fork PRs run both.

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

Labels

testing Testing related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants