TypeScript 97.4%
SQL 1%
JavaScript 0.9%
CSS 0.6%
1import { chromium } from "@playwright/test";2import { execSync } from "node:child_process";3const EMAIL = process.env.QA_EMAIL ?? "qa.mobile@polyllm.test", PASSWORD = process.env.QA_PASSWORD ?? "Str0ng-Passw0rd-qa!";4const b = await chromium.launch(); const p = await b.newPage({ viewport: { width: 1200, height: 800 } });5await p.goto("http://localhost:3000/signup", { waitUntil: "networkidle" });6console.log("labels:", await p.locator("label").allTextContents());7const name = p.getByLabel(/name/i).first(); if (await name.count()) await name.fill("QA Mobile");8await p.getByLabel(/email/i).first().fill(EMAIL);9const pw = p.getByLabel(/^password$/i); await pw.first().fill(PASSWORD);10const confirm = p.getByLabel(/confirm/i); if (await confirm.count()) await confirm.first().fill(PASSWORD);11const terms = p.getByRole("checkbox"); if (await terms.count()) await terms.first().check().catch(() => {});12await p.getByRole("button", { name: /create|sign up/i }).first().click();13await p.waitForTimeout(4000);14console.log("after signup url:", p.url());15console.log("alerts:", await p.locator('[role=alert], .text-danger').allTextContents());16console.log(execSync(`psql postgres://localhost:5432/polyllm -Atc "update users set email_verified=true where email='${EMAIL}' returning id"`).toString().trim() || "no user row");17await b.close();18