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});} });