Skip to content

Vm app e2e - #35

Draft
dudyas6 wants to merge 10 commits into
flightctl:mainfrom
dudyas6:vm-app-e2e
Draft

Vm app e2e#35
dudyas6 wants to merge 10 commits into
flightctl:mainfrom
dudyas6:vm-app-e2e

Conversation

@dudyas6

@dudyas6 dudyas6 commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds deviceApps.cy.js for Form + YAML KVM apps and serial console login against alias test-apps (device6).
  • Restores device.cy.js lifecycle on test-device (approve, edit, logs, decommission, scale fleet).
  • Approve / decommission / flightctl console target devices by alias so both VMs can coexist.

Test plan

  • With only device5 enrolled as test-device, device.cy.js still covers the original flow.
  • After device6 is pending as test-apps, run npx cypress run --spec e2e/deviceApps.cy.js.
  • Confirm decommission of test-device-edited2 does not delete test-apps.

Move KVM application tests to deviceApps.cy.js (test-apps on device6) while
device.cy.js keeps lifecycle tests on test-device (device5). Add scroll-into-view
helpers for enrolled-table lookups, default viewport 1920x1080, and an extra
wizard Next click for the fleet Updates step.

Co-authored-by: Cursor <cursoragent@cursor.com>
@dudyas6
dudyas6 force-pushed the vm-app-e2e branch 2 times, most recently from 79a7640 to 93253ee Compare August 20, 2026 12:55
dudyas6 and others added 9 commits August 20, 2026 16:39
Handle the leave-form Discard changes dialog when sidebar navigation
interrupts a dirty wizard, and close the create-fleet wizard cleanly when
test-fleet already exists (409 Conflict).

Co-authored-by: Cursor <cursoragent@cursor.com>
Fleet/repository specs work on CI with upstream code; drop branch-specific
wizard, discard-modal, and common.navigateTo changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep only functional changes (name-based lookups, scroll helpers, specific
table selectors). Restore original Cypress actionability checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
…window

The helper breaks the Cypress retry chain — once the link is found the
500000ms timeout no longer applies to the .should('contain', 'Online')
assertion. Use a direct cy.contains on the table row instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
…meout

Make enrolledDeviceRowByAlias the primary helper using cy.contains on
the table row directly. enrolledDeviceLinkByAlias derives from it via
.find(). This keeps the retry chain intact for long-polling assertions
like waiting for Online status.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ches

Row textContent concatenates cells without whitespace, so the regex
boundary check fails. Plain string match is sufficient since device
names don't overlap within the same test phase.

Co-authored-by: Cursor <cursoragent@cursor.com>
scrollIntoView in the helper breaks Cypress retry chain (action, not
query). The Online wait uses a should callback on the table element
instead — cy.get retries the full timeout without intermediate actions.

Co-authored-by: Cursor <cursoragent@cursor.com>
enrolledDeviceRowByAlias is now a pure query (no actions). Interactive
call sites chain .scrollIntoView() themselves. Polling assertions like
the Online wait get the full timeout retry window.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

1 participant