@rotorsoft/act-tck 1.27.26 → 1.27.28

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.
@@ -1 +1 @@
1
- {"version":3,"file":"store-tck.d.ts","sourceRoot":"","sources":["../../src/store-tck.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAQV,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAc9B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,OAAO,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/C;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAC3C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,WAAW,YAAa,eAAe,KAAG,IAsiItD,CAAC"}
1
+ {"version":3,"file":"store-tck.d.ts","sourceRoot":"","sources":["../../src/store-tck.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAQV,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAc9B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,OAAO,CAAC;CACrD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/C;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAC3C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,WAAW,YAAa,eAAe,KAAG,IAsmItD,CAAC"}
package/dist/index.cjs CHANGED
@@ -2382,6 +2382,16 @@ var runStoreTck = (options) => {
2382
2382
  (0, import_vitest9.expect)(await store.defer([`missing-${uid()}`], Date.now())).toBe(0);
2383
2383
  (0, import_vitest9.expect)(await store.defer([], Date.now())).toBe(0);
2384
2384
  });
2385
+ (0, import_vitest9.it)("counts a duplicated stream name once (#1360)", async () => {
2386
+ const s = `defer-dup-${uid()}`;
2387
+ await store.subscribe([{ stream: s }]);
2388
+ await store.commit(
2389
+ s,
2390
+ [inc(1)],
2391
+ make_meta({ stream: s })
2392
+ );
2393
+ (0, import_vitest9.expect)(await store.defer([s, s], Date.now() + 36e5)).toBe(1);
2394
+ });
2385
2395
  });
2386
2396
  (0, import_vitest9.describe)("ack finalize (due-marked leases)", () => {
2387
2397
  (0, import_vitest9.it)("defers a due-marked lease instead of acking it", async () => {
@@ -2535,6 +2545,16 @@ var runStoreTck = (options) => {
2535
2545
  (0, import_vitest9.expect)(await store.reset([`missing-${uid()}`])).toBe(0);
2536
2546
  (0, import_vitest9.expect)(await store.reset([])).toBe(0);
2537
2547
  });
2548
+ (0, import_vitest9.it)("counts a duplicated stream name once (#1360)", async () => {
2549
+ const s = `reset-dup-${uid()}`;
2550
+ await store.subscribe([{ stream: s }]);
2551
+ await store.commit(
2552
+ s,
2553
+ [inc(1)],
2554
+ make_meta({ stream: s })
2555
+ );
2556
+ (0, import_vitest9.expect)(await store.reset([s, s])).toBe(1);
2557
+ });
2538
2558
  });
2539
2559
  (0, import_vitest9.describe)("unblock", () => {
2540
2560
  (0, import_vitest9.it)("clears blocked flag and preserves the watermark", async () => {
@@ -3304,6 +3324,36 @@ var runStoreTck = (options) => {
3304
3324
  const unknown = await store.query_stats([`qst-${tag}-missing`]);
3305
3325
  (0, import_vitest9.expect)(unknown.size).toBe(0);
3306
3326
  });
3327
+ (0, import_vitest9.it)("keyset pagination visits every stream regardless of name case (#1357)", async () => {
3328
+ const tag = uid();
3329
+ const names = [
3330
+ `${tag}-Bravo`,
3331
+ `${tag}-alpha`,
3332
+ `${tag}-Charlie`,
3333
+ `${tag}-delta`
3334
+ ];
3335
+ for (const s of names)
3336
+ await store.commit(
3337
+ s,
3338
+ [inc(1)],
3339
+ make_meta({ stream: s })
3340
+ );
3341
+ const visited = [];
3342
+ let after;
3343
+ let page = await store.query_stats(
3344
+ { stream: tag },
3345
+ { after, limit: 1 }
3346
+ );
3347
+ while (page.size > 0) {
3348
+ for (const k of page.keys()) visited.push(k);
3349
+ after = [...page.keys()].at(-1);
3350
+ page = await store.query_stats(
3351
+ { stream: tag },
3352
+ { after, limit: 1 }
3353
+ );
3354
+ }
3355
+ (0, import_vitest9.expect)([...visited].sort()).toEqual([...names].sort());
3356
+ });
3307
3357
  (0, import_vitest9.it)("tail returns the earliest event per stream", async () => {
3308
3358
  const tag = uid();
3309
3359
  const s = `qst-tail-${tag}`;