fix(settings): сохранять результат операций базы при вторичных сбоях
This commit is contained in:
1 parent
738c98b9d3
commit
92b65a30ce
15 files changed
+159
-32
No files matched your search
@@ -26,3 +26,15 @@ test("restore needs literal receipt; malformed/false/204/HTTP error never retry"
|
||||
calls=0;globalThis.fetch=async()=>{calls++;return Response.json({error:"restore unknown"},{status:503})};await assert.rejects(restoreSystemDatabaseBackup("https://backend.test",dump),/restore unknown/);assert.equal(calls,1)
|
||||
}finally{globalThis.fetch=original}
|
||||
})
|
||||
|
||||
test("backup warning header is strict and malformed metadata preserves valid archive with warning",async()=>{
|
||||
const original=globalThis.fetch;try{
|
||||
const warnings={listenerError:"listener warning",schedulerError:"scheduler warning",eventError:"event warning"}
|
||||
globalThis.fetch=async()=>new Response("PGDMPfixture",{headers:{"X-System-Database-Outcome":encodeURIComponent(JSON.stringify(warnings))}})
|
||||
assert.deepEqual((await downloadSystemDatabaseBackup("https://backend.test")).warnings,warnings)
|
||||
for(const header of ["%","false",encodeURIComponent(JSON.stringify({listenerError:4})),encodeURIComponent(JSON.stringify({error:"failed"}))]){
|
||||
globalThis.fetch=async()=>new Response("PGDMPfixture",{headers:{"X-System-Database-Outcome":header}})
|
||||
const result=await downloadSystemDatabaseBackup("https://backend.test");assert.equal(await result.blob.text(),"PGDMPfixture");assert.match(result.warnings.eventError!,/не подтверждены/)
|
||||
}
|
||||
}finally{globalThis.fetch=original}
|
||||
})
|
||||
Reference in new issue
Block a user