LAUTO 收口正式启用后自动化巡检
这个提交包含在:
@@ -96,6 +96,9 @@ const reportDir = process.env.P2_FIN_LIVE_REPORT_DIR?.trim() ||
|
||||
path.resolve(process.cwd(), "..", "artifacts/qa-flow/p2-fin-live-local");
|
||||
const summaryPath = path.join(reportDir, "live-result.json");
|
||||
const finalFlagState = process.env.P2_FIN_LIVE_FINAL_STATE?.trim() === "force_on" ? "force_on" : "force_off";
|
||||
const alreadyOnMode =
|
||||
process.env.P2_FIN_LIVE_ALREADY_ON === "1" ||
|
||||
process.env.LAUNCH_AUTO_PAYMENT_BATCH_ALREADY_ON === "1";
|
||||
|
||||
function nowMarker() {
|
||||
return `${markerPrefix}-${Date.now()}-${Math.random().toString(16).slice(2, 8)}`;
|
||||
@@ -406,8 +409,13 @@ test.describe("公网付款批次受控验收", () => {
|
||||
summary.stages.preflight = {
|
||||
paymentFlagBefore: snapshotFlag(paymentFlagBefore),
|
||||
erpSyncEffectiveEnabled: erpFlagBefore.effectiveEnabled,
|
||||
alreadyOnMode,
|
||||
};
|
||||
expect(paymentFlagBefore.effectiveEnabled, "payment_batch_v1 should be off before public live window").toBe(false);
|
||||
if (alreadyOnMode) {
|
||||
expect(paymentFlagBefore.effectiveEnabled, "payment_batch_v1 should already be on").toBe(true);
|
||||
} else {
|
||||
expect(paymentFlagBefore.effectiveEnabled, "payment_batch_v1 should be off before public live window").toBe(false);
|
||||
}
|
||||
expect(erpFlagBefore.effectiveEnabled, "erp_sync must remain off for this test").toBe(false);
|
||||
|
||||
const reimbursement = await createTestReimbursement(employee.api, marker);
|
||||
@@ -428,12 +436,14 @@ test.describe("公网付款批次受控验收", () => {
|
||||
financeTaskApproved: Boolean(approval.financeTaskId),
|
||||
};
|
||||
|
||||
const paymentFlagOn = await updateFlag(
|
||||
admin.api,
|
||||
"payment_batch_v1",
|
||||
"force_on",
|
||||
`${issueId} short window ${marker}`,
|
||||
);
|
||||
const paymentFlagOn = alreadyOnMode
|
||||
? paymentFlagBefore
|
||||
: await updateFlag(
|
||||
admin.api,
|
||||
"payment_batch_v1",
|
||||
"force_on",
|
||||
`${issueId} short window ${marker}`,
|
||||
);
|
||||
summary.stages.flagOn = { paymentFlagOn: snapshotFlag(paymentFlagOn) };
|
||||
expect(paymentFlagOn.effectiveEnabled).toBe(true);
|
||||
const erpFlagAfterPaymentOn = await loadFlag(admin.api, "erp_sync");
|
||||
@@ -512,10 +522,12 @@ test.describe("公网付款批次受控验收", () => {
|
||||
});
|
||||
expect(exportResponse.status(), "finance AP export should succeed while flag is on").toBe(200);
|
||||
|
||||
await expectAuditAction(admin.api, "FEATURE_FLAG_UPDATED", (item) =>
|
||||
item.extra?.flagKey === "payment_batch_v1" &&
|
||||
(item.extra?.to as Record<string, unknown> | undefined)?.overrideMode === "force_on",
|
||||
);
|
||||
if (!alreadyOnMode) {
|
||||
await expectAuditAction(admin.api, "FEATURE_FLAG_UPDATED", (item) =>
|
||||
item.extra?.flagKey === "payment_batch_v1" &&
|
||||
(item.extra?.to as Record<string, unknown> | undefined)?.overrideMode === "force_on",
|
||||
);
|
||||
}
|
||||
await expectAuditAction(admin.api, "PAYMENT_BATCH_CREATED", (item) => item.targetId === batch.id);
|
||||
await expectAuditAction(admin.api, "PAYMENT_BATCH_REVIEWED", (item) => item.targetId === batch.id);
|
||||
await expectAuditAction(admin.api, "PAYMENT_BATCH_RECEIPT_UPLOADED", (item) =>
|
||||
@@ -546,7 +558,19 @@ test.describe("公网付款批次受控验收", () => {
|
||||
} finally {
|
||||
if (admin) {
|
||||
try {
|
||||
if (finalFlagState === "force_on" && !caughtError) {
|
||||
if (alreadyOnMode) {
|
||||
const finalPaymentFlag = await loadFlag(admin.api, "payment_batch_v1");
|
||||
const finalErpFlag = await loadFlag(admin.api, "erp_sync");
|
||||
summary.stages.finalState = {
|
||||
paymentFlag: snapshotFlag(finalPaymentFlag),
|
||||
erpSyncEffectiveEnabled: finalErpFlag.effectiveEnabled,
|
||||
alreadyOnMode,
|
||||
};
|
||||
expect(finalPaymentFlag.effectiveEnabled).toBe(true);
|
||||
expect(finalPaymentFlag.overrideMode).toBe("force_on");
|
||||
expect(finalFlagState).toBe("force_on");
|
||||
expect(finalErpFlag.effectiveEnabled).toBe(false);
|
||||
} else if (finalFlagState === "force_on" && !caughtError) {
|
||||
const paymentFlag = await loadFlag(admin.api, "payment_batch_v1");
|
||||
const finalPaymentFlag =
|
||||
paymentFlag.overrideMode === "force_on" && paymentFlag.effectiveEnabled
|
||||
|
||||
在新工单中引用
屏蔽一个用户