A step opens a tab the way a person has to, through the menu when it is hidden

CI run 35 was red: the suite died after step 15 with `widget with text
"Container" not found`. Nothing in the editor broke — the tenth tab (#73) pushed
Container behind the `»` button at the test window's 1280 px, exactly the case
#84 was built for, and three steps still clicked the tab name directly.

openTab(t, tab) in tools/e2e/lib/scaffold.mjs asks tabRow() whether the tab is
hidden and goes through the menu when it is, so the fix lives in one place rather
than in every step that opens a tab. The LABELS record moves there as TAB_LABELS,
since both the helper and 14-overflow need it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Opus 5 committed 2026-09-14 07:03:40 +02:00
1 parent 0f9e1611d1
commit 4feb4c2cf6
5 files changed
+43 -24

No files matched your search

+3 -3
View File
@@ -1,6 +1,6 @@
import { colourDistance } from '../lib/harness.mjs';
import { edge, node, propertiesOf, variable, written } from '../lib/builders.mjs';
import { MAKE_OBJECT } from './lib/scaffold.mjs';
import { MAKE_OBJECT, openTab } from './lib/scaffold.mjs';
/**
* Animations: made from a texture, edited in their own tab, worn by a sprite through `texture`,
@@ -132,8 +132,8 @@ export async function animation(t) {
// 25c. The Animation tab shows it and plays it; the inspector keeps its two properties.
await evaluate(`__gm.state.select({ kind: 'asset', assetId: ${JSON.stringify(walk.id)} })`);
await clickText('Animation');
await sleep(500);
await openTab(t, 'animation');
await sleep(300);
check(
'the inspector edits frames per second and playback',
(await t.has('Frames per second')) && (await t.has('Playback')) && (await t.has('Loop')),