Preserve preparation conditions and invalidate outdated source reviews

This commit is contained in:
2026-09-06 10:43:14 +03:00
parent fef6f2ab89
commit fa56e0fe83
5 changed files with 57 additions and 2 deletions
+13
View File
@@ -44,3 +44,16 @@ test('review revision changes invalidate the preparation source even with identi
const second={sourceReview:{humanReview:{documentId:'doc',revision:2,textHash:'same'}}};
assert.notEqual(bidSourceSnapshot(tender,first),bidSourceSnapshot(tender,second));
});
test('persisted preparation retains critical conditions and changed findings invalidate review', async()=>{
const {preparationAnalysisSource,preparationConditionSections}=await import('../src/services/preparationAnalysis.js');
const analysis={itemsAndSpecs:[],qualificationCriteria:['Servis yetkisi'],criticalRequirements:['Numune zorunlu'],risksAndPenalties:[{text:'Gecikme cezası',clause:'Madde 12'}],sourceEvidence:[{quote:'numune'}],documentVersion:'same-document'};
const saved=JSON.parse(JSON.stringify(preparationAnalysisSource(analysis)));
assert.deepEqual(saved.qualificationCriteria,analysis.qualificationCriteria);
assert.deepEqual(saved.risksAndPenalties,analysis.risksAndPenalties);
assert.deepEqual(saved.sourceEvidence,analysis.sourceEvidence);
assert.equal(bidSourceSnapshot(tender,analysis),bidSourceSnapshot(tender,saved));
for(const [field] of preparationConditionSections) {
assert.notEqual(bidSourceSnapshot(tender,saved),bidSourceSnapshot(tender,{...saved,[field]:['Yeni koşul']}),field);
}
});