From a756cf58bb6f73cbef17c91d45d7d8d0840ac2d0 Mon Sep 17 00:00:00 2001 From: Ty Date: Fri, 25 Sep 2026 08:56:57 -0700 Subject: [PATCH] fix(m4): drop stale tick-nudge hint from tape page (#99) --- frontend/src/capture/AxisPanel.svelte | 2 +- frontend/tests/e2e/tape-fixed-line.spec.ts | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/frontend/src/capture/AxisPanel.svelte b/frontend/src/capture/AxisPanel.svelte index 7242634..e488a65 100644 --- a/frontend/src/capture/AxisPanel.svelte +++ b/frontend/src/capture/AxisPanel.svelte @@ -327,7 +327,7 @@ {Math.round(transform.zoom * 100)}% -

Wheel or pinch zooms the slab. Arrow keys tilt; up and down nudge the last tick. Shift is a fine step. Double-tap the slab to fit.

+

Wheel or pinch zooms the slab, drag pans it, and the handle tilts it. Arrow keys tilt; Shift is a fine step. Double-tap the slab to fit.

Crop fill

diff --git a/frontend/tests/e2e/tape-fixed-line.spec.ts b/frontend/tests/e2e/tape-fixed-line.spec.ts index 5cbe0e7..c93b641 100644 --- a/frontend/tests/e2e/tape-fixed-line.spec.ts +++ b/frontend/tests/e2e/tape-fixed-line.spec.ts @@ -58,8 +58,9 @@ test.describe('#99 fixed tape line', () => { expect(fs.existsSync(FACE_A), 'fixture face-a').toBeTruthy(); await toLengthPage(page); - // The hint must never tell the owner to drag the ticks. + // The hint must never tell the owner to drag or nudge the ticks. await expect(page.getByText('Drag the ticks')).toHaveCount(0); + await expect(page.getByText('nudge the last tick')).toHaveCount(0); await expect(page.getByText('The line is fixed in the middle')).toBeVisible(); const stage = page.getByTestId('tape-line'); @@ -110,12 +111,14 @@ test.describe('#99 fixed tape line', () => { await toLengthPage(page); const canvas = page.getByTestId('tape-line').locator('canvas').first(); + const fill = page.getByLabel('Crop fill percent'); const before = await canvas.screenshot(); - // Move the crop-fill slider to a different value. - const fill = page.getByLabel('Crop fill percent'); + // Move the crop-fill slider and confirm the control really took the value, + // so a no-op fill() can never masquerade as a passing assertion. await fill.fill('50'); - await page.waitForTimeout(500); + await expect(fill).toHaveValue('50'); + await page.waitForTimeout(1200); const after = await canvas.screenshot(); expect(Buffer.compare(before, after), 'crop fill must move the line ends').not.toBe(0);