Skip to content

test(e2e): retain late runtime errors through final suite restoration #382

Closed

Description

@chhoumann

The journey harness checks runtime errors before the next test clears diagnostics, after per-test workspace restoration, and at the end of suite restoration. QA1's delayed-cleanup sentinel proves rejection at the next beforeEach boundary.

Independent fourth-round review identified a remaining gap before cache-restoration reloads, both per test and at the final suite boundary. The suite client retains its original snapshot. restoreJourneyCache reloads the renderer before the final runtime assertion, which can clear an error emitted after the last per-test check or during shared suite teardown. No next beforeEach remains to observe that error. A subsequent single-test real-Obsidian probe confirmed the gap. The existing delayed-cleanup probe emitted its sentinel after the final per-test check. Selecting only its first test returned green because final restoration cleared the sentinel. No error was observed in the normal acceptance runs.

Capture diagnostics before each restoration reload and preserve the error while still completing cleanup and releasing the vault lock. Prove this with a single-test delayed-cleanup sentinel, normal suite rollback, and all baseline tests. Do not let a diagnostics assertion skip restoration.

QA1's coordinator explicitly capped the authorized work at four fix rounds. This remaining coverage gap is a follow-up and does not change the current test-only PR.

The reviewer also noted that a failed pre-test assertion leaves its buffers and prior runtimeFailure value intact. Later test bodies can be skipped and report the same error repeatedly. Preserve and report the original error while clearing diagnostics for later tests, without allowing a false pass or skipping restoration.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions