Hold stale tender notification retries for review

This commit is contained in:
2026-09-06 13:19:55 +03:00
parent 02625906f2
commit 1fbf77c0ac
6 changed files with 73 additions and 4 deletions
+14
View File
@@ -85,3 +85,17 @@ for(const action of ['confirmed_sent','skip'])test(`manual outbox ${action} is a
assert.equal(subscriptions.reserveDelivery(sub.id,{to:email,html:'A'},['review-tender']),null);
assert.equal(subscriptions.remove(sub.id,email),true);assert.equal(subscriptions.deliveryQueue().find(row=>row.id===delivery.id).review.action,action);
});
test('source review hold preserves payload and seen state, fences stale workers and retains reason',()=>{
const sub=subscriptions.subscribe('source-review',{konular:['Laboratuvar']})[0];
subscriptions.markBaseline(sub.id,[]);
const first=subscriptions.reserveDelivery(sub.id,{html:'immutable'},['pending-item'],{clock:1000});
const reclaimed=subscriptions.reserveDelivery(sub.id,{html:'changed'},['new-item'],{clock:122000});
assert.equal(subscriptions.holdDelivery(first,'stale worker'),false);
assert.equal(subscriptions.holdDelivery(reclaimed,'Kaynak tarihi değişti; inceleme gerekli.'),true);
assert.equal(subscriptions.failDelivery(reclaimed,'late failure'),false);
assert.throws(()=>subscriptions.acceptDelivery(reclaimed,'late-provider'),/etkin değil/);
assert.deepEqual(subscriptions.reserveDelivery(sub.id,{html:'new'},['new-item'],{clock:123000}),{blocked:true});
assert.deepEqual(subscriptions.list('source-review')[0].sonGorulenler,[]);
assert.equal(subscriptions.deliveryQueue().find(row=>row.id===first.id).error,'Kaynak tarihi değişti; inceleme gerekli.');
});