Persist document processing outcomes separately from upload success

This commit is contained in:
2026-09-06 09:34:52 +03:00
parent ece623d86c
commit 32ea749669
8 changed files with 72 additions and 10 deletions
+9
View File
@@ -74,6 +74,7 @@ test('shared item extraction requires an owned tender document and matching tend
const body={ad:'scope.txt',icerikBase64:Buffer.from('Yalnız test dokümanı, cetvel yok.').toString('base64'),ikn:'2026/123456'};
const company=await request('/api/me/documents','POST',body);
assert.equal(company.status,200);
assert.equal(company.data.processing.status,'not_applicable');
assert.equal(company.data.belgeler.find(d=>d.id===company.data.id).tur,'firma');
const extract=id=>({documentId:id,ikn:body.ikn,metin:'Cetvel yok.'});
assert.equal((await request('/api/kalem/cikar','POST',extract(company.data.id))).status,403);
@@ -81,9 +82,17 @@ test('shared item extraction requires an owned tender document and matching tend
assert.equal((await request('/api/kalem/cikar','POST',extract(company.data.id))).status,403);
const tender=await request('/api/me/documents','POST',{...body,documentType:'ihale'});
assert.equal(tender.status,200);
assert.equal(tender.data.processing.status,'awaiting_text');
const processing=async()=> (await request('/api/me/documents')).data.belgeler.find(d=>d.id===tender.data.id).isleme;
assert.equal((await request('/api/kalem/cikar','POST',extract(tender.data.id),other)).status,403);
assert.equal((await request('/api/kalem/cikar','POST',{...extract(tender.data.id),ikn:'2026/999999'})).status,403);
assert.equal((await processing()).status,'awaiting_text');
assert.equal((await request('/api/kalem/cikar','POST',{...extract(tender.data.id),metin:{invalid:true}})).status,400);
assert.equal((await processing()).status,'error');
assert.equal((await request('/api/kalem/cikar','POST',extract(tender.data.id))).status,200);
assert.equal((await processing()).status,'no_items');
assert.equal((await processing()).count,0);
assert.ok((await processing()).updatedAt);
assert.equal((await request('/api/kalem/cikar','POST',{ikn:body.ikn,metin:'test'})).status,403);
await request('/api/me/documents?id='+company.data.id,'DELETE');
await request('/api/me/documents?id='+tender.data.id,'DELETE');
+1 -1
View File
@@ -15,7 +15,7 @@ after(() => rmSync(dir, { recursive: true, force: true }));
test('old volume migrates before indexing, preserves files and migration is repeatable', () => {
for (let i = 0; i < 2; i++) {
const db = store.openDb();
assert.equal(db.prepare('SELECT COUNT(*) n FROM schema_migrations').get().n, 2);
assert.equal(db.prepare('SELECT COUNT(*) n FROM schema_migrations').get().n, 3);
assert.ok(db.prepare('PRAGMA table_info(belgeler)').all().some(c => c.name === 'ikn'));
db.close();
}