feat: connect resource library workflows
This commit is contained in:
@@ -79,6 +79,11 @@ function createFetchMock({
|
||||
});
|
||||
}
|
||||
|
||||
async function chooseSelectOption(label: string, optionName: string) {
|
||||
fireEvent.click(screen.getByRole("combobox", { name: label }));
|
||||
fireEvent.click(await screen.findByRole("option", { name: optionName }));
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
pushMock.mockReset();
|
||||
});
|
||||
@@ -92,26 +97,30 @@ test("forces low customers to use auto_basic and mid customers to use semi_pro",
|
||||
|
||||
render(<SubmitWorkbench />);
|
||||
|
||||
const customerLevelSelect = await screen.findByLabelText("客户层级");
|
||||
const serviceModeSelect = screen.getByLabelText("服务模式");
|
||||
await screen.findByText("Ava / Studio");
|
||||
|
||||
fireEvent.change(customerLevelSelect, {
|
||||
target: { value: "low" },
|
||||
});
|
||||
await chooseSelectOption("客户层级", "低客单 low");
|
||||
|
||||
expect(serviceModeSelect).toHaveValue("auto_basic");
|
||||
expect(screen.getByRole("combobox", { name: "服务模式" })).toHaveTextContent(
|
||||
"自动基础处理 auto_basic",
|
||||
);
|
||||
fireEvent.click(screen.getByRole("combobox", { name: "服务模式" }));
|
||||
expect(
|
||||
screen.getByRole("option", { name: "半人工专业处理 semi_pro" }),
|
||||
).toBeDisabled();
|
||||
|
||||
fireEvent.change(customerLevelSelect, {
|
||||
target: { value: "mid" },
|
||||
).toHaveAttribute("data-disabled");
|
||||
fireEvent.keyDown(document.activeElement ?? document.body, {
|
||||
key: "Escape",
|
||||
});
|
||||
|
||||
expect(serviceModeSelect).toHaveValue("semi_pro");
|
||||
await chooseSelectOption("客户层级", "中客单 mid");
|
||||
|
||||
expect(screen.getByRole("combobox", { name: "服务模式" })).toHaveTextContent(
|
||||
"半人工专业处理 semi_pro",
|
||||
);
|
||||
fireEvent.click(screen.getByRole("combobox", { name: "服务模式" }));
|
||||
expect(
|
||||
screen.getByRole("option", { name: "自动基础处理 auto_basic" }),
|
||||
).toBeDisabled();
|
||||
).toHaveAttribute("data-disabled");
|
||||
});
|
||||
|
||||
test("preserves selected values when order submission fails", async () => {
|
||||
@@ -135,18 +144,10 @@ test("preserves selected values when order submission fails", async () => {
|
||||
|
||||
await screen.findByText("Ava / Studio");
|
||||
|
||||
fireEvent.change(screen.getByLabelText("客户层级"), {
|
||||
target: { value: "low" },
|
||||
});
|
||||
fireEvent.change(screen.getByLabelText("模特资源"), {
|
||||
target: { value: "model-ava" },
|
||||
});
|
||||
fireEvent.change(screen.getByLabelText("场景资源"), {
|
||||
target: { value: "scene-loft" },
|
||||
});
|
||||
fireEvent.change(screen.getByLabelText("服装资源"), {
|
||||
target: { value: "garment-coat-01" },
|
||||
});
|
||||
await chooseSelectOption("客户层级", "低客单 low");
|
||||
await chooseSelectOption("模特资源", "Ava / Studio");
|
||||
await chooseSelectOption("场景资源", "Loft Window");
|
||||
await chooseSelectOption("服装资源", "Structured Coat 01");
|
||||
|
||||
const summaryCard = screen.getByRole("region", { name: "提单摘要" });
|
||||
expect(within(summaryCard).getByText("Ava / Studio")).toBeInTheDocument();
|
||||
@@ -158,11 +159,21 @@ test("preserves selected values when order submission fails", async () => {
|
||||
expect(
|
||||
await screen.findByText("后端暂时不可用,请稍后重试。"),
|
||||
).toBeInTheDocument();
|
||||
expect(screen.getByLabelText("客户层级")).toHaveValue("low");
|
||||
expect(screen.getByLabelText("服务模式")).toHaveValue("auto_basic");
|
||||
expect(screen.getByLabelText("模特资源")).toHaveValue("model-ava");
|
||||
expect(screen.getByLabelText("场景资源")).toHaveValue("scene-loft");
|
||||
expect(screen.getByLabelText("服装资源")).toHaveValue("garment-coat-01");
|
||||
expect(screen.getByRole("combobox", { name: "客户层级" })).toHaveTextContent(
|
||||
"低客单 low",
|
||||
);
|
||||
expect(screen.getByRole("combobox", { name: "服务模式" })).toHaveTextContent(
|
||||
"自动基础处理 auto_basic",
|
||||
);
|
||||
expect(screen.getByRole("combobox", { name: "模特资源" })).toHaveTextContent(
|
||||
"Ava / Studio",
|
||||
);
|
||||
expect(screen.getByRole("combobox", { name: "场景资源" })).toHaveTextContent(
|
||||
"Loft Window",
|
||||
);
|
||||
expect(screen.getByRole("combobox", { name: "服装资源" })).toHaveTextContent(
|
||||
"Structured Coat 01",
|
||||
);
|
||||
});
|
||||
|
||||
test("submits the selected resources, surfaces returned ids, and redirects to the order detail page", async () => {
|
||||
@@ -189,18 +200,10 @@ test("submits the selected resources, surfaces returned ids, and redirects to th
|
||||
|
||||
await screen.findByText("Ava / Studio");
|
||||
|
||||
fireEvent.change(screen.getByLabelText("客户层级"), {
|
||||
target: { value: "low" },
|
||||
});
|
||||
fireEvent.change(screen.getByLabelText("模特资源"), {
|
||||
target: { value: "model-ava" },
|
||||
});
|
||||
fireEvent.change(screen.getByLabelText("场景资源"), {
|
||||
target: { value: "scene-loft" },
|
||||
});
|
||||
fireEvent.change(screen.getByLabelText("服装资源"), {
|
||||
target: { value: "garment-coat-01" },
|
||||
});
|
||||
await chooseSelectOption("客户层级", "低客单 low");
|
||||
await chooseSelectOption("模特资源", "Ava / Studio");
|
||||
await chooseSelectOption("场景资源", "Loft Window");
|
||||
await chooseSelectOption("服装资源", "Structured Coat 01");
|
||||
|
||||
fireEvent.click(screen.getByRole("button", { name: "提交订单" }));
|
||||
|
||||
@@ -213,7 +216,6 @@ test("submits the selected resources, surfaces returned ids, and redirects to th
|
||||
customer_level: "low",
|
||||
service_mode: "auto_basic",
|
||||
model_id: 101,
|
||||
pose_id: 202,
|
||||
garment_asset_id: 303,
|
||||
scene_ref_asset_id: 404,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user