webmati dev và webmati test
Xem theme thay đổi ngay khi lưu file, và chạy thử workflow trên máy với dữ liệu mẫu.
webmati dev — lưu file, trang tự tải lại
webmati dev --open
dev theo dõi thư mục theme/. Mỗi khi bạn lưu (và file yên 300 ms), nó đẩy loạt
thay đổi đó vào bản nháp rồi tải lại trang trong trình duyệt. Trang mở qua một
proxy trên máy bạn, mặc định http://127.0.0.1:9393. Một lần đẩy bị các luật
kiểm tra từ chối thì được in ra và bỏ qua: sửa file, lưu lại là xong. Ctrl-C để
dừng.
webmati dev --path /products/ao-thun # mở một trang cụ thể
webmati dev --port 9400 # đổi cổng của proxy
webmati dev --no-proxy # chỉ in link xem trước, không proxy, không tự tải lại
Theme riêng cho bạn: --new-theme
Bản nháp của website là một, dùng chung với customizer và những người khác.
Muốn thử nghiệm mà không làm ai bị ảnh hưởng, tạo một theme phát triển (bản
chép của bản nháp) và để dev đẩy vào đó:
webmati dev --new-theme --theme-name "thử menu mới"
Từ đó project ghi vào theme của riêng bạn (webmati.toml nhớ lựa chọn này).
webmati test — chạy workflow trên máy
webmati test orders
test chạy bản nháp trên đĩa của workflow orders bằng đúng engine của
platform, ngay trên máy bạn. Không có gì được ghi ngược lên server.
| Cái workflow cần | Lấy từ đâu khi test |
|---|---|
| yêu cầu (request) | backend/fixtures/inputs/<code>.json, hoặc --input |
| dòng của bảng | backend/fixtures/<table>.jsonl (mỗi dòng một bản ghi JSON) |
gọi ra ngoài (fetch) | mock trong backend/fixtures/fetch.json |
| secret | biến môi trường WEBMATI_SECRET_<CODE> hoặc .webmati/secrets.json |
| email, SMTP, realtime, job | được ghi lại trong kết quả, không bao giờ gửi |
Yêu cầu đầu vào
webmati test orders --input '{"body":{"min":3}}' # JSON viết thẳng
webmati test orders --input backend/fixtures/big.json # một file
echo '{"query":{"page":"2"}}' | webmati test orders --input -
Các khoá có thể có: method, path, query, params, headers, body, ip,
user, event, geo, app. Chỉ chạy đến một node (cho dễ gỡ lỗi):
webmati test orders --node calc
Mock cho fetch
backend/fixtures/fetch.json là một mảng câu trả lời có sẵn. url khớp chính
xác, hoặc khớp tiền tố nếu kết thúc bằng *:
[
{
"method": "GET",
"url": "https://api.example.com/rates*",
"status": 200,
"content_type": "application/json",
"body": { "usd_vnd": 25400 }
}
]
Một fetch không có mock thì bị chặn và ghi vào kết quả. --allow-network gửi
thật (khi đó secret lấy từ WEBMATI_SECRET_<CODE> hoặc .webmati/secrets.json):
WEBMATI_SECRET_STRIPE_KEY=sk_test_… webmati test checkout --allow-network
.webmati/secrets.json có dạng {"STRIPE_KEY": "sk_test_…"} và đã nằm trong
.gitignore: đừng commit nó.
Chạy trên platform: --remote
webmati test orders --remote
--remote là thật
--remotechạy cùng bản nháp đó trên platform: mọi thao tác ghi bảng, email gửi đi, lời gọi ra ngoài và publish realtime đều thật. CLI cảnh báo và hỏi trước (--yesđể không hỏi). Dùng khi bạn cần dữ liệu thật, trên một website thử.
Mỗi node code có 5 giây mặc định (--timeout 10s để nới).

