Forget the base closed longest ago rather than the one handed out again

This commit is contained in:
2026-08-30 11:31:22 +02:00
parent aa3cf41c7f
commit 5c797f5383
5 changed files with 42 additions and 13 deletions
+25
View File
@@ -1563,6 +1563,11 @@ describe('merged delivery report bounds', () => {
assert.equal(dlrMerger.collect(receipt('first-1')), undefined);
assert.equal(dlrMerger.collect(receipt('first-2')), undefined);
dlrMerger.expect(['first-1', 'first-2']);
assert.equal(dlrMerger.collect(receipt('first-1')), undefined);
assert.equal(dlrMerger.collect(receipt('first-2')), undefined);
dlrMerger.clear();
assert.equal(dlrMerger.size, 0);
});
@@ -1598,6 +1603,26 @@ describe('merged delivery report bounds', () => {
assert.equal(dlrMerger.collect(receipt('reused-2')), undefined);
});
test('forgets the base closed longest ago, not the one handed out again', () => {
const dlrMerger = merger({ max: 2 });
for (const base of ['reused', 'other']) {
dlrMerger.expect([`${base}-1`, `${base}-2`]);
assert.equal(dlrMerger.collect(receipt(`${base}-1`)), undefined);
assert.ok(dlrMerger.collect(receipt(`${base}-2`)));
}
dlrMerger.expect(['reused-1', 'reused-2']);
dlrMerger.expect(['third-1', 'third-2']);
assert.equal(dlrMerger.collect(receipt('third-1')), undefined);
assert.ok(dlrMerger.collect(receipt('third-2')));
dlrMerger.expect(['reused-1', 'reused-2']);
assert.equal(dlrMerger.size, 0);
});
test('keeps another message when a held base is opened again', () => {
const dlrMerger = merger({ max: 2 });