Fixture đi qua những bước nào trước khi thành memo
Hai luồng: luồng xử lý biến fixture thành kết quả, và luồng xuất file bảo đảm memo không ghi đè gì. Mỗi chỗ dừng đều trả về đúng một mã lỗi.
Từ fixture tới kết quả
Đọc, kiểm, tính, rồi viết memo
- 1
Đọc file
JSON UTF-8 trên ổ cục bộ, có giới hạn kích thước và độ sâu.
INPUT_ERROR · đọc hỏng
- 2
Kiểm schema
Đủ mọi key, số tiền dạng chuỗi thập phân, ngày hợp lệ, ID không trùng.
VALIDATION_ERROR · sai nội dung
- 3
Tính chênh lệch
Thực tế trừ ngân sách, chỉ khi khớp kỳ, tiền tệ, đơn vị.
- 4
Kiểm điều khoản
Vị trí, phiên bản, thẩm quyền, thời hạn hiệu lực so với ngày của fixture.
- 5
Viết memo
Kết quả kèm lý do, fixture gốc giữ nguyên trong khối mã.
needs_review · luôn gắn
Xuất memo mà không ghi đè
Memo chỉ xuất hiện khi đã ghi trọn vẹn
- 1
Kiểm đường dẫn
Chỉ ổ cục bộ; chặn đường mạng, symlink,
...Dừng · đường lạ
- 2
Kiểm đích
Thư mục cha phải có, file đích phải chưa có.
OUTPUT_ERROR · đã có file
- 3
Ghi file tạm
Ghi đủ nội dung vào file tạm cùng thư mục.
- 4
Công bố
Tạo memo từ file tạm theo kiểu độc quyền, không thay file nào.
- 5
Dọn file tạm
Xoá file tạm, thoát với mã 0.
OUTPUT_
PUBLISHED_ · memo đủ, tạm cònCLEANUP_ ERROR
Nhãn xanh: điều kiện công cụ luôn giữ cho kết quả.
Nhãn đỏ: chỗ dừng, kèm mã lỗi bạn sẽ thấy.
Dừng ở bất kỳ bước nào trước bước 4 thì không có memo nào được tạo.
Một kết quả đi tới tay người xem thế nào
Mỗi mục trong memo dừng ở một trong các trạng thái dưới; không mục nào được duyệt tự động.
- 01
unknown
Thiếu số, lệch kỳ hay tiền tệ, thiếu metadata, chưa hiệu lực hoặc đã hết hạn.
- 02
available
Chênh lệch tính được khi hai số đủ và khớp nhau.
- 03
eligible_for_review
Điều khoản khai báo đủ thông tin để người xem; chưa phải xác thực.
- 04
needs_review
Trạng thái chung của mọi memo, bất kể từng mục ra sao.
- 05
Người xem quyết
Bạn đọc memo, đối chiếu nguồn thật và tự đưa ra kết luận.
Thử luồng này trên máy bạn
Chạy fixture mẫu rồi đổi một trường để thấy trạng thái unknown.