@rotorsoft/act-tck 1.27.7 → 1.27.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2322,7 +2322,7 @@ var runStoreTck = (options) => {
2322
2322
  expect8(again.find((l) => l.stream === ctl)).toBeDefined();
2323
2323
  expect8(again.find((l) => l.stream === s)).toBeUndefined();
2324
2324
  });
2325
- it7("holds the watermark and resets retry on a due-marked lease", async () => {
2325
+ it7("holds the watermark and resets retry on an explicit-defer due lease (retry: -1)", async () => {
2326
2326
  const s = `ackdefer-past-${uid()}`;
2327
2327
  await store.subscribe([{ stream: s }]);
2328
2328
  await store.commit(
@@ -2332,7 +2332,7 @@ var runStoreTck = (options) => {
2332
2332
  );
2333
2333
  const leased = await store.claim(100, 100, `w-${uid()}`, 1e5);
2334
2334
  const mine = leased.find((l) => l.stream === s);
2335
- await store.ack([{ ...mine, due: Date.now() - 1e3 }]);
2335
+ await store.ack([{ ...mine, due: Date.now() - 1e3, retry: -1 }]);
2336
2336
  const again = await store.claim(100, 100, `w-${uid()}`, 1e5);
2337
2337
  const re = again.find((l) => l.stream === s);
2338
2338
  expect8(re).toBeDefined();
@@ -2340,6 +2340,24 @@ var runStoreTck = (options) => {
2340
2340
  expect8(re.retry).toBe(0);
2341
2341
  await store.ack([{ ...re, at: 1e6 }]);
2342
2342
  });
2343
+ it7("persists the lease's retry on a backoff-style due lease (#1262)", async () => {
2344
+ const s = `ackdefer-retry-${uid()}`;
2345
+ await store.subscribe([{ stream: s }]);
2346
+ await store.commit(
2347
+ s,
2348
+ [inc(1)],
2349
+ make_meta({ stream: s })
2350
+ );
2351
+ const leased = await store.claim(100, 100, `w-${uid()}`, 1e5);
2352
+ const mine = leased.find((l) => l.stream === s);
2353
+ await store.ack([{ ...mine, due: Date.now() - 1e3, retry: 3 }]);
2354
+ const again = await store.claim(100, 100, `w-${uid()}`, 1e5);
2355
+ const re = again.find((l) => l.stream === s);
2356
+ expect8(re).toBeDefined();
2357
+ expect8(re.at).toBe(mine.at);
2358
+ expect8(re.retry).toBe(4);
2359
+ await store.ack([{ ...re, at: 1e6 }]);
2360
+ });
2343
2361
  it7("ignores due-marked entries from a non-holder", async () => {
2344
2362
  const s = `ackdefer-owner-${uid()}`;
2345
2363
  await store.subscribe([{ stream: s }]);