Surface shared inventory failures and isolate test database storage

This commit is contained in:
2026-09-06 10:30:51 +03:00
parent dbe43c241d
commit 0c16bbd96f
6 changed files with 48 additions and 10 deletions
+24
View File
@@ -0,0 +1,24 @@
import {test} from 'node:test';
import assert from 'node:assert/strict';
import {mkdtempSync,writeFileSync,rmSync,existsSync} from 'node:fs';
import {tmpdir} from 'node:os';
import {join} from 'node:path';
import {execFileSync} from 'node:child_process';
test('failed shared-store initialization is retryable after storage is repaired',()=>{
const dir=mkdtempSync(join(tmpdir(),'ihaleist-shared-recovery-'));
try {
writeFileSync(join(dir,'kalem.sqlite'),'not a sqlite database');
execFileSync(process.execPath,['--input-type=module','-e',`
import assert from 'node:assert/strict';
import {rmSync} from 'node:fs';
import {join} from 'node:path';
const store=await import('./server/kalem-store.mjs');
assert.throws(()=>store.kalemOku('2026/123'));
rmSync(join(process.env.IHALEIST_SHARED_DATA_DIR,'kalem.sqlite'));
assert.deepEqual(store.kalemOku('2026/123'),{kalemler:[],kaynak:null});
assert.equal(store.kalemYaz('2026/123',[{ad:'QA tüp',miktar:2,birim:'adet'}]),1);
assert.equal(store.kalemOku('2026/123').kalemler[0].ad,'QA tüp');
`],{cwd:new URL('..',import.meta.url),env:{...process.env,IHALEIST_SHARED_DATA_DIR:dir},stdio:'pipe'});
assert.equal(existsSync(join(dir,'kalem.sqlite')),true);
} finally {rmSync(dir,{recursive:true,force:true});}
});