B1-B8 建立项目级流程与QA门禁

这个提交包含在:
2026-05-09 01:57:05 +08:00
父节点 555e7b7e29
当前提交 485328426a
共修改 29 个文件,包含 1633 行新增和 102 行删除
+8 -2
查看文件
@@ -56,8 +56,14 @@ export async function openInvoicePool(page: Page) {
export async function uploadLiveInvoiceAndWait(page: Page, invoiceFilePath: string, timeout = 180_000): Promise<LiveInvoiceOcrResult> {
const startedAt = Date.now();
const uploadResponsePromise = page.waitForResponse((response) => {
const url = new URL(response.url());
return response.request().method() === "POST" && url.pathname === "/api/invoice-pool/upload" && response.ok();
});
await page.getByTestId("invoice-upload-file").setInputFiles(invoiceFilePath);
await page.getByTestId("invoice-upload-submit").click();
const uploadPayload = (await (await uploadResponsePromise).json()) as { data?: { invoicePoolId?: string | null } };
const uploadedInvoiceId = uploadPayload.data?.invoicePoolId ?? null;
const detailPanel = page.getByTestId("invoice-detail-panel");
await expect(detailPanel).toBeVisible({ timeout: 30_000 });
@@ -74,7 +80,7 @@ export async function uploadLiveInvoiceAndWait(page: Page, invoiceFilePath: stri
} catch (error) {
const detailText = await detailPanel.innerText().catch(() => "");
const bannerText = await page.getByTestId("invoice-ocr-status-banner").innerText().catch(() => "");
const invoiceId = extractField(detailText, "票据ID:");
const invoiceId = uploadedInvoiceId ?? extractField(detailText, "票据ID:");
throw new Error(
[
"live 腾讯 OCR 等待终态超时",
@@ -100,7 +106,7 @@ export async function uploadLiveInvoiceAndWait(page: Page, invoiceFilePath: stri
detailText,
bannerText,
durationMs: Date.now() - startedAt,
invoiceId: extractField(detailText, "票据ID:"),
invoiceId: uploadedInvoiceId ?? extractField(detailText, "票据ID:"),
invoiceCode,
invoiceNumber,
sellerName: extractField(detailText, "销售方:"),