Hold stale tender notification retries for review
This commit is contained in:
@@ -55,3 +55,19 @@ test('subscription criteria remain plain text in outgoing digest HTML',async()=>
|
||||
assert.ok(!message.html.includes(criteria));
|
||||
assert.ok(message.subject.includes(criteria),'the non-HTML subject retains the literal criterion');
|
||||
});
|
||||
|
||||
test('pending digest is held before provider replay when its deadline or eligibility changed',async()=>{
|
||||
const pinned={...future};
|
||||
for(const current of [[],[{...future,durum:'İptal'}],[{...future,tarih:'01.09.2026'}],
|
||||
[{...future,saat:''}],[{...future,tarih:'11.09.2026'}]]) {
|
||||
let held=0;
|
||||
const delivery={id:'pending',lease:'test',tenderIds:[future.id],payload:{digest:[pinned],html:'original'}};
|
||||
const deps={now,configured:()=>true,telegramReady:()=>false,
|
||||
readSubscriptions:()=>[{id:1,email:'qa',initialized:true,deliveryPending:true}],reserve:()=>delivery,
|
||||
hold:(job,reason)=>{assert.equal(job,delivery);assert.match(reason,/incelemesi/);held++;},
|
||||
accepted:()=>assert.fail('must not mark as delivered'),deliverEmail:()=>assert.fail('must not replay stale email')};
|
||||
const result=await bildirimleriIsle(async()=>({tenders:current}),{},deps);
|
||||
assert.equal(held,1);assert.equal(result.hata,1);assert.equal(result.gonderilen,0);
|
||||
assert.equal(delivery.payload.html,'original');
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user