* Production readiness phase 1: journeys doc, onboarding persistence, teardown, chat UX - Add docs/PRODUCTION-READINESS.md with journey matrix and defect backlog - Persist onboarding draft in session storage across reload - Localize onboarding discovery main-bot role; German Chief of Staff string - Destroy team sandboxes and home folders when deleting an account - Keep composer/transcript visible during queued runs; extend send watchdog - Add Playwright specs: reload persistence, DE intake, queued progress, console guard Co-authored-by: cynarAI <cynarAI@users.noreply.github.com> * Fix CI: sync Lingui catalogs, onboarding name draft, E2E stability - Localize Chief of Staff in discovery shell; sync all locale PO files - Propagate Oo name to onboarding draft while typing - Adjust DE intake, queued-run, and console-error E2E specs Co-authored-by: cynarAI <cynarAI@users.noreply.github.com> * Format chat-queued-progress E2E spec Co-authored-by: cynarAI <cynarAI@users.noreply.github.com> * fix(api): scope account-delete sandbox teardown to owned spaces Only destroy team sandboxes and homes for spaces the deleting user owns with no remaining members or bots. Guard home removal under dataDir/homes. Add unit and postgres journey coverage. Co-authored-by: cynarAI <cynarAI@users.noreply.github.com> * chore: apply biome formatting Co-authored-by: cynarAI <cynarAI@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: cynarAI <cynarAI@users.noreply.github.com>
24 lines
1.0 KiB
TypeScript
24 lines
1.0 KiB
TypeScript
import { expect, test } from "@playwright/test";
|
|
import { completeOnboarding, signup } from "./helpers";
|
|
|
|
test.use({ viewport: { width: 390, height: 844 }, isMobile: true, hasTouch: true });
|
|
|
|
test("German UI localizes goal placeholder and question in intake", async ({ page }) => {
|
|
await page.addInitScript(() => {
|
|
Object.defineProperty(navigator, "language", { value: "de-DE", configurable: true });
|
|
localStorage.setItem("rakazo.uiLocale", "de");
|
|
});
|
|
const stamp = Date.now();
|
|
await signup(page, `intake-de-${stamp}@rakazo.test`, "password12", "Deutsch Intake");
|
|
await completeOnboarding(page, undefined, { mainConversation: true });
|
|
await page.getByTestId("focus-choice-day").click();
|
|
|
|
const goal = page.locator('[data-testid="choice-card"][data-step="goal"]');
|
|
await expect(goal).toContainText("Was möchtest du in den nächsten Wochen erledigt bekommen?");
|
|
await expect(
|
|
goal.getByRole("textbox", {
|
|
name: "Was möchtest du in den nächsten Wochen erledigt bekommen?",
|
|
}),
|
|
).toHaveAttribute("placeholder", "Dein Ziel");
|
|
});
|