cdc32061cb
Original task: Add a UI test for the leave-group successor chooser dialog
in artifacts/teaboy-os/src/pages/chat.tsx, mirroring the backend coverage
in artifacts/api-server/tests/conversations-leave.test.mjs.
What I added:
- artifacts/teaboy-os/tests/leave-group-successor.spec.mjs
A real Playwright e2e test that drives the chat UI in a browser:
* Cancel path: opens the leave dialog as the sole admin, verifies the
successor chooser is visible with the auto option pre-selected and
one option per remaining member, clicks Cancel, and asserts via DB
that the conversation membership and admin flags are unchanged.
* Chosen-successor path: re-opens the dialog, picks the *later-joined*
member (so the choice differs from the auto pick), confirms the
leave, asserts the POST /conversations/:id/leave call returns 200,
and verifies via DB that the leaver was removed and the explicitly
chosen member became the new admin.
Both tests seed their own users + group via SQL and clean up after
themselves so they can run repeatedly against the live dev DB.
- artifacts/teaboy-os/playwright.config.mjs
Minimal Playwright config: testDir=tests, *.spec.mjs match, headless,
baseURL defaults to http://localhost:80 (the workspace proxy), and
is overridable via TEST_WEB_BASE.
- artifacts/teaboy-os/package.json
Added @playwright/test and pg as devDependencies and a `test:e2e`
script: `playwright test --config playwright.config.mjs`.
- .gitignore
Ignored Playwright's test-results/ and playwright-report/ output dirs.
How to run:
pnpm --filter @workspace/teaboy-os exec playwright install chromium
DATABASE_URL=... pnpm --filter @workspace/teaboy-os run test:e2e
Verification:
Both tests pass locally (2 passed in ~9s) against the running dev
workspace. Required system libraries for headless Chromium were
installed via the workspace's system-deps mechanism (glib, nss, nspr,
atk, cups, dbus, libdrm, libxkbcommon, libgbm, alsa-lib, pango, cairo,
and the relevant xorg libs), so `playwright test` works out of the
box on this environment.
No application source files were modified.
Replit-Task-Id: d2f21eab-498e-4cc0-a913-6035b714b3da
26 lines
413 B
Nix
26 lines
413 B
Nix
{pkgs}: {
|
|
deps = [
|
|
pkgs.expat
|
|
pkgs.xorg.libxcb
|
|
pkgs.xorg.libXrandr
|
|
pkgs.xorg.libXfixes
|
|
pkgs.xorg.libXext
|
|
pkgs.xorg.libXdamage
|
|
pkgs.xorg.libXcomposite
|
|
pkgs.xorg.libX11
|
|
pkgs.cairo
|
|
pkgs.pango
|
|
pkgs.alsa-lib
|
|
pkgs.libgbm
|
|
pkgs.libxkbcommon
|
|
pkgs.libdrm
|
|
pkgs.dbus
|
|
pkgs.cups
|
|
pkgs.at-spi2-atk
|
|
pkgs.atk
|
|
pkgs.nspr
|
|
pkgs.nss
|
|
pkgs.glib
|
|
];
|
|
}
|