From a69323986cc2e83fd98bfaa47ebc65a53246c2e2 Mon Sep 17 00:00:00 2001 From: riyadhafraa <49757212-riyadhafraa@users.noreply.replit.com> Date: Tue, 21 Apr 2026 12:24:25 +0000 Subject: [PATCH] Wire leave-group successor picker UI test into automated suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original task: make the ad-hoc browser test for the leave-group successor chooser dialog a persistent automated test that runs alongside the existing api-server backend tests. Changes: - The Playwright spec at `artifacts/teaboy-os/tests/leave-group-successor.spec.mjs` was already present (covers the cancel path and the pick-specific-successor path, seeds its own users + group via Postgres, cleans up in afterAll). Verified it passes against the running web + api workflows. - Installed @playwright/test + pg as devDependencies in @workspace/teaboy-os (already in package.json, ran pnpm install to materialize) and downloaded the Playwright Chromium browser. - Added a root `test` script in package.json that runs the api-server tests and then the teaboy-os e2e tests (sequential with `&&`) so a single command exercises both layers. - Registered a single `test` validation command that runs api + e2e sequentially. Initially registered them as two separate commands but a parallel validation run caused api-server session flakes (401s), so collapsed into one sequential command. - Updated `scripts/post-merge.sh` to also install the Playwright Chromium browser after every merge, and bumped the post-merge timeout to 120s to accommodate the (cached) browser install. Validation: combined sequential `test` validation passes — all 15 api-server tests pass and both new e2e tests pass. Note: `artifacts/teaboy-os/public/opengraph.jpg` was modified by another process (the workflow build) and is not part of this task's intended changes. Replit-Task-Id: ab9b6d6f-b68b-47ea-94e5-c34352afeb64 --- .replit | 22 +++++++++++++++++++++- artifacts/teaboy-os/public/opengraph.jpg | Bin 25884 -> 25977 bytes package.json | 3 ++- scripts/post-merge.sh | 1 + 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.replit b/.replit index 7543f223..547eaae4 100644 --- a/.replit +++ b/.replit @@ -11,13 +11,33 @@ env = { "CI" = "true" } [workflows] runButton = "Project" +[[workflows.workflow]] +name = "Project" +mode = "parallel" +author = "agent" + +[[workflows.workflow.tasks]] +task = "workflow.run" +args = "test" + +[[workflows.workflow]] +name = "test" +author = "agent" + +[[workflows.workflow.tasks]] +task = "shell.exec" +args = "pnpm --filter @workspace/api-server test && pnpm --filter @workspace/teaboy-os test:e2e" + +[workflows.workflow.metadata] +isValidation = true + [agent] stack = "PNPM_WORKSPACE" expertMode = true [postMerge] path = "scripts/post-merge.sh" -timeoutMs = 20000 +timeoutMs = 120000 [[ports]] localPort = 8080 diff --git a/artifacts/teaboy-os/public/opengraph.jpg b/artifacts/teaboy-os/public/opengraph.jpg index 292b472896a5c99814f0c694f6439d9025f04ee2..afb1dfdbdfece3b2f14d8d570acf9683d69e7025 100644 GIT binary patch literal 25977 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 H{g;0M%Gm+~ diff --git a/package.json b/package.json index 9def4272..59b300dd 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "preinstall": "sh -c 'rm -f package-lock.json yarn.lock; case \"$npm_config_user_agent\" in pnpm/*) ;; *) echo \"Use pnpm instead\" >&2; exit 1 ;; esac'", "build": "pnpm run typecheck && pnpm -r --if-present run build", "typecheck:libs": "tsc --build", - "typecheck": "pnpm run typecheck:libs && pnpm -r --filter \"./artifacts/**\" --filter \"./scripts\" --if-present run typecheck" + "typecheck": "pnpm run typecheck:libs && pnpm -r --filter \"./artifacts/**\" --filter \"./scripts\" --if-present run typecheck", + "test": "pnpm --filter @workspace/api-server test && pnpm --filter @workspace/teaboy-os test:e2e" }, "private": true, "devDependencies": { diff --git a/scripts/post-merge.sh b/scripts/post-merge.sh index 49136a2e..dc016718 100644 --- a/scripts/post-merge.sh +++ b/scripts/post-merge.sh @@ -2,3 +2,4 @@ set -e pnpm install --frozen-lockfile pnpm --filter db run push-force +pnpm --filter @workspace/teaboy-os exec playwright install chromium