fix(e2e): fix stacks timeout and nodes skip in CI

stacks.spec.ts:
- waitForStacksLoaded: wait for 'Create Stack' button instead of [cmdk-item] > 0
  CI starts with empty COMPOSE_DIR so there are no stacks; the button is always
  rendered in the sidebar regardless of whether any stacks exist

nodes.spec.ts:
- beforeEach: click Settings then 'Nodes' nav item to reach NodeManager
  The Add Node button lives inside Settings → Nodes; the previous beforeEach
  only clicked Settings but never navigated to the Nodes section, so the
  add-node button was never found and tests silently skipped
This commit is contained in:
SaelixCode
2026-03-22 01:20:54 -04:00
parent e876a91a2e
commit 14c24c8245
2 changed files with 7 additions and 10 deletions
+3 -7
View File
@@ -2,17 +2,13 @@
* Stack management E2E tests — happy path CRUD.
*/
import { test, expect } from '@playwright/test';
import { loginAs, TEST_USERNAME, TEST_PASSWORD } from './helpers';
import { loginAs } from './helpers';
const TEST_STACK = 'e2e-test-stack';
/** Wait for stacks to load in the sidebar (uses /api/stacks via the browser context). */
/** Wait for the stacks sidebar to be ready (Create Stack button is always rendered). */
async function waitForStacksLoaded(page: import('@playwright/test').Page) {
// Poll until the stacks API returns data AND the sidebar has at least one item
await page.waitForFunction(() => {
const items = document.querySelectorAll('[cmdk-item]');
return items.length > 0;
}, { timeout: 15_000 });
await expect(page.getByRole('button', { name: 'Create Stack' })).toBeVisible({ timeout: 15_000 });
}
/** Delete the test stack via the browser's authenticated fetch (so cookies are included). */