Files
EventHubFrontAdmin/e2e/TESTIDS.md
T
aleksey 840f06e68e
CI / test (push) Successful in 2m21s
CI / push-image (push) Successful in 4m7s
CI / ci-done (push) Successful in 0s
feat(ci): последовательный deploy IFT -> E2E -> stage -> E2E.
Stage деплоится только после полного UI-сьюта на IFT; после stage — E2E на stage (ift-ui/stage-ui + smoke).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 11:31:22 +03:00

1.9 KiB

E2E testid contract (EventHubFrontAdmin)

Селекторы: data-testid + a11y (getByRole / getByLabel) где имя стабильно.

Naming

Pattern Example
page-{name} page-login, page-users, page-inbox-reports
nav-{slug} nav-users
row-{id} dense list / DataTable rows
row-activate-{id} dense list main click target
{entity}-row-{id} inbox-specific (report-row-*)
btn-{action} btn-login, btn-save-profile
dialog-{name} dialog-edit-user
filter-{name} filter-users-search
menu-user / lang-ru avatar dropdown

Helper: src/lib/testid.ts.

Rules

  • kebab-case; dynamic id = API entity id (or banned word)
  • Prefer a11y for login fields
  • Do not decorate decorative wrappers

Запуск

Команда Назначение
npm run test:e2e mock-suite (CI / PR), API через Playwright route
npm run test:e2e:ift IFT: полный UI-сьют на живом SPA + smoke API
npm run test:e2e:stage stage: полный UI-сьют на живом SPA + smoke API

IFT / stage учётки

Источник истины — env стенда (EventHubDevOps/ift/.env, EventHubDevOps/stage/.env → на хосте /opt/eventhub-{ift,stage}/.env):

Переменная Назначение
SMOKE_ADMIN_EMAIL / SMOKE_ADMIN_PASSWORD предпочтительно для smoke/E2E
ADMIN_SUPER_EMAIL / ADMIN_SUPER_PASSWORD fallback, если SMOKE_ADMIN_* пустые

Локально: set -a && source /path/to/ift/.env && set +a && npm run test:e2e:ift.

Workflow e2e-ift.yml / e2e-stage.yml читают те же ключи по SSH с /opt/eventhub-{ift,stage}/.env. Опц. secrets E2E_IFT_BASE_URL, E2E_STAGE_BASE_URL.