Surface shared inventory failures and isolate test database storage
This commit is contained in:
@@ -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});}
|
||||
});
|
||||
Reference in New Issue
Block a user