Skip to content

[ZEPPELIN-6536] Stabilize notebook keyboard shortcut e2e editor seeding - #5304

Merged
voidmatcha merged 3 commits into
apache:masterfrom
voidmatcha:fix/stabilize-keyboard-shortcut-e2e
Jul 17, 2026
Merged

[ZEPPELIN-6536] Stabilize notebook keyboard shortcut e2e editor seeding#5304
voidmatcha merged 3 commits into
apache:masterfrom
voidmatcha:fix/stabilize-keyboard-shortcut-e2e

Conversation

@voidmatcha

@voidmatcha voidmatcha commented Jul 14, 2026

Copy link
Copy Markdown
Member

What is this PR for?

This PR stabilizes the notebook keyboard-shortcut e2e suite by avoiding keyboard-driven fixture seeding in the Monaco editor.

In the Firefox Playwright job, setup could trigger Monaco suggestions while typing fixture content. That let Enter accept a suggestion before the shortcut assertion ran, corrupting expected text, for example line becoming license.

The helper now seeds fixture text through the editor textarea without shortcut-style key events. The shortcut assertions still use real keyboard events.

This also re-enables the clone-content shortcut coverage now that #5254 has been merged. The skip is no longer needed, and keeping it would leave that shortcut path without regression coverage.

What type of PR is it?

Bug Fix

What is the Jira issue?

https://issues.apache.org/jira/browse/ZEPPELIN-6536

How should this be tested?

Screenshots (if appropriate)

N/A

Questions:

  • Does the license files need to update? No
  • Is there breaking changes for older versions? No
  • Does this needs documentation? No

jongyoul
jongyoul previously approved these changes Jul 15, 2026
@voidmatcha

Copy link
Copy Markdown
Member Author

Ran the keyboard-shortcut spec 10x in parallel on top of this PR's head (690a62b), all browser projects in anonymous mode, retries=0. All 10 passed:

https://github.com/voidmatcha/zeppelin/actions/runs/29462418270

The verification branch is the PR head plus a temporary 10x matrix workflow, nothing else. Auth mode is covered by the regular CI run on the same commit, where both playwright jobs passed: https://github.com/voidmatcha/zeppelin/actions/runs/29351333647

@voidmatcha
voidmatcha force-pushed the fix/stabilize-keyboard-shortcut-e2e branch from 519c453 to 039c686 Compare July 16, 2026 16:54
@voidmatcha

Copy link
Copy Markdown
Member Author

Added 039c686: isRetryableError in the shared notebook-creation helper now also retries browser-internal crashes (WebKit encountered an internal error / Target crashed).

Running repeated flake loops on my fork, the one remaining failure was webkit-only and hit this suite's setup — createTestNotebookWithName failed with page.goto: WebKit encountered an internal error (run). This matches microsoft/playwright#34450 (closed as not planned): a transient WebKit-on-Linux crash that passes on retry, so it is absorbed in the helper's existing retry loop. Left a TODO to drop the pattern once it is fixed upstream.

@voidmatcha
voidmatcha merged commit 0fe444e into apache:master Jul 17, 2026
18 of 19 checks passed
@voidmatcha

Copy link
Copy Markdown
Member Author

Merged into master (0fe444e).

tbonelee pushed a commit that referenced this pull request Jul 18, 2026
…asses

### What is this PR for?
Follow-up to ZEPPELIN-6536 (#5304). A cross-review of the merged keyboard-shortcut suite found four silent-pass risks in the helpers; this PR closes them:

- `pressShortcutFromHostUntil` now polls for the press's effect before retrying, so a slow toggle is not double-pressed and the loop cannot return on the transient state between two in-flight effects.
- The clear-output test asserts the result is visible before pressing; previously a no-output run let the helper skip the press entirely.
- InsertAbove/InsertBelow emptiness assertions now gate on the editor being rendered (`waitForEditorRendered`); an unrendered editor reads as `''` and matched vacuously.
- `setCodeEditorContent` compares normalized equality instead of containment, so stale fixture text fails at seeding time.

Test-only change; no product code touched.

### What type of PR is it?
Improvement

### What is the Jira issue?
ZEPPELIN-6544

### How should this be tested?

### Questions:
* Does the license files need to update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Closes #5315 from voidmatcha/fix/harden-keyboard-e2e-helpers.

Signed-off-by: ChanHo Lee <chanholee@apache.org>
gyowoo1113 pushed a commit to gyowoo1113/zeppelin that referenced this pull request Jul 19, 2026
### What is this PR for?
This PR stabilizes the notebook keyboard-shortcut e2e suite by avoiding keyboard-driven fixture seeding in the Monaco editor.

In the Firefox Playwright job, setup could trigger Monaco suggestions while typing fixture content. That let Enter accept a suggestion before the shortcut assertion ran, corrupting expected text, for example `line` becoming `license`.

The helper now seeds fixture text through the editor textarea without shortcut-style key events. The shortcut assertions still use real keyboard events.

This also re-enables the clone-content shortcut coverage now that apache#5254 has been merged. The skip is no longer needed, and keeping it would leave that shortcut path without regression coverage.

### What type of PR is it?
Bug Fix

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-6536

### How should this be tested?

### Screenshots (if appropriate)
N/A

### Questions:
* Does the license files need to update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No


Closes apache#5304 from voidmatcha/fix/stabilize-keyboard-shortcut-e2e.

Signed-off-by: YONGJAE LEE <dev.yongjaelee@gmail.com>
gyowoo1113 pushed a commit to gyowoo1113/zeppelin that referenced this pull request Jul 19, 2026
…asses

### What is this PR for?
Follow-up to ZEPPELIN-6536 (apache#5304). A cross-review of the merged keyboard-shortcut suite found four silent-pass risks in the helpers; this PR closes them:

- `pressShortcutFromHostUntil` now polls for the press's effect before retrying, so a slow toggle is not double-pressed and the loop cannot return on the transient state between two in-flight effects.
- The clear-output test asserts the result is visible before pressing; previously a no-output run let the helper skip the press entirely.
- InsertAbove/InsertBelow emptiness assertions now gate on the editor being rendered (`waitForEditorRendered`); an unrendered editor reads as `''` and matched vacuously.
- `setCodeEditorContent` compares normalized equality instead of containment, so stale fixture text fails at seeding time.

Test-only change; no product code touched.

### What type of PR is it?
Improvement

### What is the Jira issue?
ZEPPELIN-6544

### How should this be tested?

### Questions:
* Does the license files need to update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Closes apache#5315 from voidmatcha/fix/harden-keyboard-e2e-helpers.

Signed-off-by: ChanHo Lee <chanholee@apache.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants