fix: 退回报销支持留痕删除(09-04-reimbursement-state-gap-finance-view)
这个提交包含在:
@@ -353,6 +353,13 @@ async function main() {
|
||||
const simultaneous = await Promise.all([retryRequest, unbindRequest]);
|
||||
assert.deepEqual(simultaneous.map((result) => result.status), [200, 200], "retry and unbind must not deadlock");
|
||||
passed.push("create retry and legacy unbind share a consistent lock order");
|
||||
if (process.env.RUN_RETAINED_DELETE_TEST === "1") {
|
||||
await require("./test-reimbursement-retained-delete.cjs")({
|
||||
prisma, pool, app, origin, tokens, employee, manager, expenseType,
|
||||
makeForm, makeInvoice, bind, post, uploadedRecord, storageDir, passed,
|
||||
root, browser, preview, loginPassword,
|
||||
});
|
||||
}
|
||||
await prisma.employee.update({ where: { id: employee.id }, data: { token_version: { increment: 1 } } });
|
||||
assert.equal((await fetch(`${origin}/api/me`, { headers: { authorization: `Bearer ${tokens.get(employee.id)}` } })).status, 401);
|
||||
passed.push("revoked token version rejected by real auth plugin");
|
||||
@@ -374,4 +381,4 @@ async function main() {
|
||||
}
|
||||
}
|
||||
|
||||
main().catch((error) => { console.error("Isolated HTTP verification failed:", error.code ?? error.name, error.code === "ERR_ASSERTION" ? error.message : "", error.stack?.match(/test-invoice-first-http\.cjs:\d+:\d+/)?.[0] ?? ""); process.exitCode = 1; });
|
||||
main().catch((error) => { console.error("Isolated HTTP verification failed:", error.code ?? error.name, error.code === "ERR_ASSERTION" ? error.message : "", error.stack?.match(/test-(?:invoice-first-http|reimbursement-retained-delete)\.cjs:\d+:\d+/)?.[0] ?? ""); process.exitCode = 1; });
|
||||
|
||||
在新工单中引用
屏蔽一个用户