feat: bootstrap auto virtual tryon admin frontend
This commit is contained in:
59
tests/lib/adapters/reviews.test.ts
Normal file
59
tests/lib/adapters/reviews.test.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { adaptPendingReviews, adaptReviewSubmission } from "@/lib/adapters/reviews";
|
||||
import type {
|
||||
PendingReviewResponseDto,
|
||||
SubmitReviewResponseDto,
|
||||
} from "@/lib/types/backend";
|
||||
|
||||
const PENDING_REVIEW_BASE: PendingReviewResponseDto = {
|
||||
review_task_id: 301,
|
||||
order_id: 101,
|
||||
workflow_id: "wf-101",
|
||||
current_step: "review",
|
||||
review_task_status: "pending",
|
||||
latest_revision_asset_id: null,
|
||||
current_revision_asset_id: null,
|
||||
latest_revision_version: null,
|
||||
revision_count: 0,
|
||||
pending_manual_confirm: false,
|
||||
created_at: "2026-03-27T00:00:00Z",
|
||||
};
|
||||
|
||||
const REVIEW_SUBMISSION_BASE: SubmitReviewResponseDto = {
|
||||
order_id: 101,
|
||||
workflow_id: "wf-101",
|
||||
decision: "rerun_scene",
|
||||
status: "queued",
|
||||
};
|
||||
|
||||
test("returns a business-empty queue state when no reviews are pending", () => {
|
||||
const viewModel = adaptPendingReviews([]);
|
||||
|
||||
expect(viewModel.items).toEqual([]);
|
||||
expect(viewModel.state.kind).toBe("business-empty");
|
||||
});
|
||||
|
||||
test("maps pending reviews to waiting-review queue items", () => {
|
||||
const viewModel = adaptPendingReviews([PENDING_REVIEW_BASE]);
|
||||
|
||||
expect(viewModel.state.kind).toBe("ready");
|
||||
expect(viewModel.items[0]).toMatchObject({
|
||||
orderId: 101,
|
||||
reviewTaskId: 301,
|
||||
status: "waiting_review",
|
||||
});
|
||||
});
|
||||
|
||||
test("maps review submission decision metadata", () => {
|
||||
const viewModel = adaptReviewSubmission(REVIEW_SUBMISSION_BASE);
|
||||
|
||||
expect(viewModel).toMatchObject({
|
||||
orderId: 101,
|
||||
workflowId: "wf-101",
|
||||
decision: "rerun_scene",
|
||||
status: "queued",
|
||||
decisionMeta: {
|
||||
label: "重跑场景",
|
||||
tone: "warning",
|
||||
},
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user