Appearance
Lệnh CLI / zenify e2e login
zenify e2e login
Đăng nhập trên host bằng harness e2e và ghi Playwright storage state để znf:ui-verifier nạp bằng zenify browser state-load.
Cú pháp
text
zenify e2e login [flags]Khi nào dùng
Trước khi znf:ui-verifier kiểm tra UI trên một web app đang chạy local. Lệnh chạy trên host (không dùng Docker), nên origin là http://localhost:<port> và web app có thể trỏ vào hub local.
Lệnh cần Node (npm, npx có trên PATH). Lần chạy đầu tải @playwright/test 1.64.1 và chromium vào ~/.zenify/playwright/harness, nên chậm và cần mạng; các lần sau dùng lại.
Login lỗi (vẫn ở /login) để lại error-context.md trong ~/.zenify/playwright/harness/.znf/e2e/__output__/; bước login không ghi trace, và harness xóa ô mật khẩu trước khi Playwright chụp snapshot trang (kể cả khi timeout giữa chừng), nên file đó không chứa mật khẩu. Web app local trỏ auth vào hub local (VITE_AUTH_URL) thì hub đó phải đang chạy, nếu không login luôn quay về /login.
Kết quả
Lệnh ghi storage state vào ~/.zenify/playwright/state.json (quyền 0600), ghi qua file tạm rồi đổi tên, nên login lỗi thì state cũ vẫn còn nguyên. Khi manifest khai báo broker:, tài khoản đăng nhập lấy từ broker và bạn không điền gì. Manifest không có broker: thì thông tin đăng nhập đọc từ E2E_DOMAIN, E2E_EMAIL, E2E_PASSWORD trong <workspace>/.zenify/.env (env hiện có của tiến trình thắng nếu không rỗng); thiếu biến nào thì lệnh thoát với mã 2 và chỉ nêu tên biến. Thông tin đăng nhập không nằm trên argv và không được in ra. Khi ZNF_E2E_ACCOUNTS_FILE khác rỗng (chỉ e2e login và e2e run --local), tài khoản của vai đọc từ file JSON đó ({"<role>": {"domain", "email", "password"}}), không gọi broker, không cần manifest khai broker:.
Cờ
| Cờ | Ý nghĩa |
|---|---|
--url | Origin của web app; chỉ nhận localhost, *.localhost hoặc IP loopback (127.0.0.1, ::1), origin khác bị từ chối. Phải có đúng một trong --url và --port. |
--port | Port web app trên localhost (1..65535), tương đương --url http://localhost:<port>. |
--role | Role tài khoản E2E xin từ broker: administrator, supervisor, team_leader, agent, sale, sale_team_leader. Ghi state vào ~/.zenify/playwright/state-<role>.json. Cần manifest khai báo broker: hoặc ZNF_E2E_ACCOUNTS_FILE; không có cả hai thì lệnh thoát mã 2 với "--role cần broker". |
Khi manifest khai báo broker:, lệnh không đọc .zenify/.env; không có --role thì dùng administrator và ghi state.json như cũ. Thông tin đăng nhập chỉ nằm trong env của tiến trình con, không ghi ra file .env.
Ví dụ
bash
zenify e2e login --port 3327
zenify e2e login --port 3327 --role agentLệnh liên quan
- zenify e2e: Nhóm lệnh cho journey E2E: lint chống test hời và chạy journey Playwright thật trong Docker.