Files
chatballs/playwright.config.ts
AndreyandClaude Fable 5.1 145c44a17d ✨ feat(internal-ui): несколько организаций — переключатель, разделы администратора установки, приглашения
Переключатель организаций в сайдбаре (дизайн-базлайн v2, A1) показывает все
организации человека, текущая отмечена, выбор другой пересобирает Shell по
ключу организации. Вход без организации в адресе открывает последнюю
открытую или первую по списку вместо экрана «нет доступа»; предпочтение
переехало в localStorage.

Разделы «Платформа» и «Хранилище файлов» видны только администратору
установки, relay для звонков у остальных менеджеров только на чтение;
настройки установки запрашиваются с /api/v1/instance/.

Ссылка-приглашение /join: вошедший принимает приглашение и попадает в новую
организацию, гость без учётной записи задаёт имя и пароль полями мастера
первого запуска. Ожидающие приглашения показаны в списке сотрудников
строками «Приглашён» с меню «отправить ещё раз» и «отозвать» — теми же
элементами, что строка сотрудника.

e2e: проекту internal-ui задана русская локаль браузера, моки сессии отдают
язык установки — сценарии перестали зависеть от языка машины; добавлены
сценарии переключателя, строки приглашения и регистрации гостя.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-12 14:37:52 +03:00

40 lines
1.4 KiB
TypeScript

import { defineConfig, devices } from "@playwright/test";
export default defineConfig({
testDir: "./tests/e2e",
timeout: 30_000,
fullyParallel: true,
reporter: [["list"], ["html", { open: "never" }]],
use: {
trace: "on-first-retry",
},
// Оба проекта должны подниматься сами: web-chat-mobile ходит на :5175, и без
// второго сервера прогон падал везде, где dev-стек не был поднят заранее.
webServer: [
{
command: "npm --workspace @chatballs/internal-ui run dev",
url: "http://localhost:5173",
reuseExistingServer: true,
timeout: 120_000,
},
{
command: "npm --workspace @chatballs/web-chat run dev",
url: "http://localhost:5175",
reuseExistingServer: true,
timeout: 120_000,
},
],
projects: [
{
name: "internal-ui",
// Русская локаль браузера: интерфейс открывается на языке установки из
// моков без перезагрузки, которую иначе делает acceptServerLanguage.
use: { ...devices["Desktop Chrome"], baseURL: "http://localhost:5173", locale: "ru-RU" },
},
{
name: "web-chat-mobile",
use: { ...devices["Pixel 7"], baseURL: "http://localhost:5175" },
},
],
});