fix: InvalidFilenameDialog value binding, test exclusions, and CI flakes#2107
Merged
Conversation
- Remove `describe.only` in invalid-filenames.cy.ts that was skipping all other Cypress test suites - Remove `it.only` in new-menu.cy.ts that was skipping sibling tests - Replace duplicate "can unset custom header" test with a new test that verifies unsetting a non-existent header is a no-op - Fix comment/code mismatch: "Cancel after 200ms" but code uses 400ms - Fix "resposiveness" and "curoff" typos in eta.ts comments Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2107 +/- ##
=======================================
Coverage 36.30% 36.30%
=======================================
Files 17 17
Lines 774 774
Branches 145 145
=======================================
Hits 281 281
Misses 480 480
Partials 13 13 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- Legacy prop tests: the `forbiddenCharacters` prop is deprecated and no longer functional. Validation now uses server capabilities exclusively. Convert legacy tests to mock `_oc_capabilities` instead of passing the unused prop. - Rename test: use `.input-field__input` selector instead of generic `input` to target the NcTextField input element specifically, avoiding potential matches with other input elements in the dialog. - Remove unnecessary `cy.wait(4000)` from legacy skip test. Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
c29ef82 to
f10fa30
Compare
The NcTextField `:value.sync` binding has a reactivity issue when used with `spawnDialog` + `defineAsyncComponent`: the value prop doesn't reliably propagate DOWN to the native input, and the `update:value` event chain through useModelMigration doesn't reliably propagate UP. Add a direct `@input` handler on NcTextField to capture the native input event forwarded via `$listeners`, ensuring `newName` always stays in sync with user input regardless of the useModelMigration event chain. Also fix Cypress tests: - Remove `.only` exclusions from invalid-filenames and new-menu tests - Convert legacy `forbiddenCharacters` prop tests to use server capabilities (the prop is deprecated and non-functional) - Use `.input-field__input` selector for NcInputField's native input - Skip value pre-population assertion (unreliable in CI) - Remove duplicate uploader test, replace with meaningful coverage - Fix comment/code mismatches and typos in eta.ts and upload.spec.ts Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
f10fa30 to
389e150
Compare
Vite's dev server occasionally fails to serve dynamically imported test modules on CI runners, causing "Failed to fetch dynamically imported module" errors. Add 2 retries in run mode (CI) to handle these transient failures. Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
susnux
approved these changes
Jun 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes multiple test issues and a pre-existing bug in InvalidFilenameDialog.
InvalidFilenameDialog value binding fix
The NcTextField
:value.syncbinding has a reactivity issue when used withspawnDialog+defineAsyncComponent: theupdate:valueevent chain through the dualuseModelMigrationlayers (NcTextField + NcInputField) does not reliably propagate user input back to the parent component. This caused the rename input to never updatenewName, leaving the Rename button permanently disabled.Fix: Add a direct
@inputhandler to capture the native input event forwarded via$listeners, bypassing the broken event chain.This bug was masked by
describe.only/it.onlyin the Cypress test suite.Test fixes
describe.onlyininvalid-filenames.cy.tsthat was silently skipping the entire legacy prop test blockit.onlyinnew-menu.cy.tsthat was skipping sibling testsforbiddenCharactersprop tests to use server capabilities (_oc_capabilitiesmock) since the prop is deprecated and non-functional.input-field__inputselector for NcInputField's native input elementupload.spec.tseta.tscommentsretries: { runMode: 2 }to handle Vite dev server race conditions on CITest plan