From d471150efbbdfaee025b82518c63c9f6a92ec475 Mon Sep 17 00:00:00 2001 From: MelekTaus Date: Wed, 30 Sep 2026 07:57:18 +0200 Subject: [PATCH] Keep e2e 58 in the scene view after the eyedropper checks (#276) The CI run for ded71a9 failed three checks in e2e 58 clipAreas. The cause was the new step 57g, not the editor. It ends in the Variables tab on purpose, and the clean-up of 57 then deletes the object whose list that tab shows. The tab closes itself, and the editor falls back to the last open document instead of the scene view. In the full run earlier modules had left document tabs open, so 58 measured and clicked in the wrong tab. Run on its own, 57 had no other document open, which is why the module run before the push was green. - 57 switches back to the scene view before its clean-up, with a comment that says why. - 58 sets the scene view itself at the start, as 44 and 51 already do. It no longer depends on what the modules before it left open. Tests: - e2e 57,58 with the fix: ALL PASSED, 17 checks. - Counter-check 57,58 and 54,57,58 without the fix: green, because no other document was open. - Counter-check with a graph tab left open before 57, without the fix: 3 FAILED with the same values as in CI. Same setup with the fix: ALL PASSED, 17 checks. Co-Authored-By: Claude Opus 5.5 --- tools/e2e/57-object-references.mjs | 4 +++- tools/e2e/58-clip-areas.mjs | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/e2e/57-object-references.mjs b/tools/e2e/57-object-references.mjs index 57eb18cf..0c76e4bc 100644 --- a/tools/e2e/57-object-references.mjs +++ b/tools/e2e/57-object-references.mjs @@ -268,7 +268,9 @@ export async function objectReferences(t) { JSON.stringify({ tabShown, inTab, fromList, listCandidate, backIn, crowd }), ); - // Clean up. + // Clean up. Back to the scene view first: removing Aim 57 closes 57g's Variables tab, and the + // editor then shows whatever document earlier steps left open, not the scene view. + await t.showTab('scene'); await evaluate('__gm.state.select(null)'); await mutate(` const p = __gm.state.project; diff --git a/tools/e2e/58-clip-areas.mjs b/tools/e2e/58-clip-areas.mjs index d6339a65..4754553e 100644 --- a/tools/e2e/58-clip-areas.mjs +++ b/tools/e2e/58-clip-areas.mjs @@ -12,7 +12,8 @@ const BAR = 'cl58-bar'; const AREA = 'cl58-clip'; export async function clipAreas(t) { - const { check, json, evaluate, mutate, click, sleep, shot, stop, wheel } = t; + const { check, json, evaluate, mutate, click, sleep, shot, stop, wheel, showTab } = t; + await showTab('scene'); // On mouse wheel → Log(delta), with no owner: it hears the whole game view. const graph = {