🧪 e2e runs
Latest runs
❌ 17285 🟢 12 🔴 2 ⚪️ 3 · Σ 17/17 ❌ 17251 🟢 10 🔴 3 ⚪️ 4 · Σ 17/17 ⏳ 17134 🟢 38 🔴 33 ⚪️ 2 · Σ 73/97 ✅ 17000 🟢 5 🔴 0 ⚪️ 0 · Σ 5/5 ⏳ 16999 🟢 40 🔴 40 ⚪️ 28 · Σ 108/112 ❌ 16998 🟢 57 🔴 27 ⚪️ 28 · Σ 112/112 ❌ 16997 🟢 74 🔴 8 ⚪️ 30 · Σ 112/112 ❌ 16757 🟢 76 🔴 5 ⚪️ 31 · Σ 112/112 ❌ 16639 🟢 0 🔴 5 ⚪️ 0 · Σ 5/5 ❌ 16638 🟢 34 🔴 53 ⚪️ 25 · Σ 112/112
See all runs →
Quick run — pick tests from run 16999 and launch a filtered e2e
Admin UI smoke (1) login + every sidebar route loads AI chat over Agape.ChatApi (flip gate) (4) provisions the Wisdom Council + a 1:1 companion channel 1:1 AI companion: send → streamed reply arrives Wisdom Council: send → a companion replies a sent message persists across a hub reconnect Agape Highlights rendering (2) highlighted message renders inside a proper bubble highlight phrases are tappable and send the reply as user message AMB-47 — host stays in room, room not prematurely ended (1) Veronika scenario: scheduled video-practice stays live past scheduledAt+countdown Logged-in app shell (2) Master: header/menu → practices, schedule, chats, dashboard User: dashboard has no Create Live-session wizard CTA auth-register-onboarding.spec.ts (1) new user reaches the dashboard after first-login profile onboarding My Calendar smoke test (4) add → badge → list → mark-viewed → remove month filter accepts YYYY-MM and returns only that month guest (no JWT) gets 401 on my-calendar legacy /api/user/calendar path still serves unified events (not 500) content-creation moderation gate (2) a Live with a violent title is rejected (422) and not created a benign Live is created normally (200/201) then cleaned up AI moderation gate · create surfaces (2) community-feed post: block-class Content → 422 (not persisted); benign → created video practice: block-class Title/Description → 422 before any file is required CORE-286 — finished room serves chat history (1) an ended quick room WITHOUT a recording still serves GET /messages CORE-755 — общий таймлайн практики (1) участника возвращает на позицию эфира после перемотки chat-overrides-smoke.spec.ts (1) Phase 4e+4f: chat surface renders new Agapella overrides dashboard-circle-and-calendar-fix.spec.ts (1) Phase C-2: КРУГ hidden for non-master + footer below calendar fold design-system-tier4-smoke.spec.ts (1) design-system tokens + chats surface live on preview DM gate (AMB-246 — mutual-follow dropped) (7) no follow either way → conversation is created (gate lifted) only caller follows other → still created mutual follow → created + message send works → unfollow → messages still send PublicUserProfile: canMessage is follow-independent; followsMeBack tracks direction self-message → 403 MESSAGE_NOT_ALLOWED anonymous viewer → followsMeBack/canMessage are null legacy create-by-masterProfileId still works for master targets Common feed (что у моих) (5) anonymous → 401 authenticated user with no follows → empty feed subscribe to master → master content surfaces in feed kinds filter narrows result set cursor pagination yields disjoint pages Fuzzy search (pg_trgm) (3) master search: prefix + substring + one-letter typo + transpose + miss practices search: prefix + typo path users search: exact substring works (regression baseline) Live chat author identity (AMB-247 / AMB-248 ) (1) live chat broadcast + REST history agree on author identity (avatar + profile target) Private lives preview mode (2) make private → share URL + 404 for anon → publish rotating the token invalidates the old URL Live multi-speaker mode (4) edit downsize — confirm dialog appears when reducing seats below current cohost count capacity blocker — N+1 guest sees Места заняты with «Смотреть как зритель» CTA anonymous guest — unauthenticated user joins via preview link happy path — master creates С гостями + 3, copies invite link, guest joins, tile toggles with mic/cam Master screen-sharing (4) viewer token and live detail surface broadcasterUid / screenUid / isScreenSharing POST /screen-share persists IsScreenSharing and is idempotent screen-share token endpoint refuses non-owners and rejects when recording not started master owns the setScreenShare endpoint — non-owner gets 403 favorites-screen-smoke.spec.ts (1) Phase C: dashboard#favorites + chip filter CORE-170 — live track picker data contract (1) getMasterVideos feeds valid switchTrack payloads GET /api/lives/{id}/transcription (3) returns the wire-contract shape for the live's master rejects unauthenticated callers with 401 hides the transcription from a non-owner caller Login form (real UI) (2) valid credentials log in and store the auth token invalid credentials show an error and do not authenticate manifesto-ru-diagnostic.spec.ts (1) diagnostic: record network of RU manifesto upload manifesto-ru-ui.spec.ts (1) full UI: master uploads manifesto from RU (real saveManifestoVideo) loginAs session (API helper) (1) loginAs master plants a cookie session off /login Master event public visibility (1) created master event appears in calendar and public master profile for another user Manifesto upload from RU — presigned direct-to-S3 (CORE-232 /291) (1) manifesto presign -> PUT to S3 round-trips (no origin choke) CORE-225 offline event duration units (1) creates a multi-day offline event and shows the same duration in card, calendar, and detail modal master-profile-publish.spec.ts (1) master draft stays private until approval, then becomes public content moderation check (/api/moderation/check) (3) English violent threat is blocked Russian violent threat is blocked benign Russian text is allowed Moderation · published-content block (Phase 1 · AMB-251 ) (1) block-class live title → 422 (not persisted); clean title → accepted Moderation · admin surface (Phase 4C · AMB-129 ) (2) Transcripts screen loads and renders its filter Moderation queue loads, renders chrome, and triages a pending row when present Offline event · catalog RSVP (1) regular RSVP on a public MasterEvent drops spotsLeft and shows Я иду Master video-practice MP4 upload (2) uploads a real MP4 and returns the new practice rejects upload with no title (sanity guard for the multipart form) Practice reflection (5) completing a practice triggers a reflection from Agapella in Wisdom Council Agapella can follow up after a user reply user can decline reflection without breaking the thread "Что я знаю о тебе" surfaces a candidate fact after several reflections user can dismiss a pending memory fact Practice room completion smoke (3) live-led create → status → visibility → promote-to-video gate → recordings feed create live-led without soundTrackId is rejected public-meta endpoint hides private rooms, exposes public ones RU content load (CORE-45 ) (5) masters catalog: public masters load chats (/chats): screen mounts and does not hang blank events (/lives): schedule content loads for a signed-in user practices catalog: public videos load home: hero masters load (public content, no auth) Self-hosted lives (LiveKit) — API routing + CORE-401 uid (3) room RTC token routes to LiveKit for a rtc_livekit master CORE-401 — token uid equals identityToUid(identity) on LiveKit CORE-401 — room roster agoraUid matches identityToUid(userId) Self-hosted lives (LiveKit) — RTC media + native (scaffold) (3) web — master broadcasts on LiveKit, viewer sees video + SH badge native — LiveKit room renders remote tile on the device (CORE-343 POC) web — cohost joins on LiveKit; master + viewer see both Self-hosted lives (LiveKit) — «SH» badge (web UI) (1) SH badge renders on a LiveKit quick room voice moderation endpoint contract (3) chat-api /health is up a clean clip is approved (200, approved !== false) the 60 s duration guard rejects an over-long clip (X-Audio-Seconds > cap -> 422) iPad web layout smoke (3) home header keeps primary controls visible chats screen mounts without tablet scroll trap quick room controls fit into the first viewport Quick Reply Buttons (5) quick reply buttons render on AI message with quick_replies data clicking a quick reply button sends it as user message quick reply buttons only appear on the last AI message quick reply buttons disappear after user sends next message quick reply buttons have correct styling Master live audio settings panel (1) room-settings dock (or mic/cam toggles when devices not enumerated) Live room · host chat UI (1) open chat, send unique bubble, host pin or delete Live room · host in-session chrome (1) mic/cam chrome then end without orphaned room Live room · host participants + share (1) participants panel, one host action, share URL
Engine:
self-hosted (yandex-ru-e2e)
testable (AWS) — disabled
🔒 admin login required
Log in
Log out
Log in with your dev admin-panel credentials (the same account you use for aapi.agdev.tmless.org). Only admin accounts can launch runs.
Run selected (0)
↑
🌓 Auto