import {test} from 'node:test'; import assert from 'node:assert/strict'; import {qualifyAnalysis} from '../server/analysis-quality.mjs'; import {extractionReview} from '../src/services/extractionReview.js'; test('OCR and omitted pages remain partial even when the model claims completion',()=>{ const result=qualifyAnalysis({sourceReview:{status:'complete'}},{text:'Source clause',extraction:{fileName:'Scan.pdf',ocr:true,pageCount:45,usedPages:40,verified:true}}); assert.equal(result.sourceReview.status,'partial'); assert.equal(result.sourceReview.issues.length,2); assert.equal(result.sourceReview.extraction[0].verified,undefined); assert.match(result.sourceReview.issues.join(' '),/OCR/); }); test('combined-source analysis retains a skipped document warning',()=>{ const result=qualifyAnalysis({}, {text:'Available announcement',extraction:[{fileName:'Announcement',complete:true},{fileName:'Missing specification',complete:false}]}); assert.equal(result.sourceReview.status,'partial'); assert.match(result.sourceReview.issues[0],/Missing specification/); assert.deepEqual(extractionReview({ocr:false,pageCount:45,usedPages:45,complete:true}).issues,[]); });