agent-comms 2.18.3 → 2.19.0

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.
Files changed (93) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -1
  4. package/dist/bridges/user/web/dist/bundle.js +1 -1
  5. package/dist/bridges/user/web/frontend/project-tree.js +3 -3
  6. package/dist/bridges/user/web/frontend/project-tree.js.map +1 -1
  7. package/dist/bridges/user/web/test/port-discovery.unit.test.js +10 -11
  8. package/dist/bridges/user/web/test/port-discovery.unit.test.js.map +1 -1
  9. package/dist/bridges/user/web/test/web-server.integration.test.js +12 -13
  10. package/dist/bridges/user/web/test/web-server.integration.test.js.map +1 -1
  11. package/dist/core/test/bridge.unit.test.js +11 -12
  12. package/dist/core/test/bridge.unit.test.js.map +1 -1
  13. package/dist/core/test/identity.unit.test.js +21 -22
  14. package/dist/core/test/identity.unit.test.js.map +1 -1
  15. package/dist/test/approval.integration.test.js +52 -45
  16. package/dist/test/approval.integration.test.js.map +1 -1
  17. package/dist/test/become-coordinator-actual-port.integration.test.d.ts +0 -2
  18. package/dist/test/become-coordinator-actual-port.integration.test.d.ts.map +1 -1
  19. package/dist/test/become-coordinator-actual-port.integration.test.js +14 -39
  20. package/dist/test/become-coordinator-actual-port.integration.test.js.map +1 -1
  21. package/dist/test/bridge-mesh.test.js +9 -10
  22. package/dist/test/bridge-mesh.test.js.map +1 -1
  23. package/dist/test/broadcast-window.integration.test.js +4 -7
  24. package/dist/test/broadcast-window.integration.test.js.map +1 -1
  25. package/dist/test/coordinator-socket-error.integration.test.js +3 -4
  26. package/dist/test/coordinator-socket-error.integration.test.js.map +1 -1
  27. package/dist/test/create-room-mints-owner-grant.test.js +9 -8
  28. package/dist/test/create-room-mints-owner-grant.test.js.map +1 -1
  29. package/dist/test/create-room-name-sanitisation.test.js +6 -7
  30. package/dist/test/create-room-name-sanitisation.test.js.map +1 -1
  31. package/dist/test/dm-admission.integration.test.js +10 -11
  32. package/dist/test/dm-admission.integration.test.js.map +1 -1
  33. package/dist/test/federation.integration.test.js +21 -20
  34. package/dist/test/federation.integration.test.js.map +1 -1
  35. package/dist/test/filestore.test.js +16 -17
  36. package/dist/test/filestore.test.js.map +1 -1
  37. package/dist/test/handshake.test.js +26 -27
  38. package/dist/test/handshake.test.js.map +1 -1
  39. package/dist/test/identity-cert.test.js +3 -4
  40. package/dist/test/identity-cert.test.js.map +1 -1
  41. package/dist/test/identity-device-id.test.js +6 -7
  42. package/dist/test/identity-device-id.test.js.map +1 -1
  43. package/dist/test/identity-restart.integration.test.js +9 -10
  44. package/dist/test/identity-restart.integration.test.js.map +1 -1
  45. package/dist/test/identity-store.test.js +27 -24
  46. package/dist/test/identity-store.test.js.map +1 -1
  47. package/dist/test/listener-policy.integration.test.js +63 -56
  48. package/dist/test/listener-policy.integration.test.js.map +1 -1
  49. package/dist/test/mcp-registry-retry.test.js +10 -11
  50. package/dist/test/mcp-registry-retry.test.js.map +1 -1
  51. package/dist/test/mesh-e2e.integration.test.js +26 -19
  52. package/dist/test/mesh-e2e.integration.test.js.map +1 -1
  53. package/dist/test/presence-readvertise.integration.test.js +5 -6
  54. package/dist/test/presence-readvertise.integration.test.js.map +1 -1
  55. package/dist/test/random-id.test.js +3 -4
  56. package/dist/test/random-id.test.js.map +1 -1
  57. package/dist/test/room-admission-tool-actions.test.js +20 -15
  58. package/dist/test/room-admission-tool-actions.test.js.map +1 -1
  59. package/dist/test/room-destroy-revocation.integration.test.js +3 -4
  60. package/dist/test/room-destroy-revocation.integration.test.js.map +1 -1
  61. package/dist/test/room-invite-directed.integration.test.js +13 -12
  62. package/dist/test/room-invite-directed.integration.test.js.map +1 -1
  63. package/dist/test/room-join-admission.test.js +31 -24
  64. package/dist/test/room-join-admission.test.js.map +1 -1
  65. package/dist/test/room-kick-revocation.integration.test.js +5 -6
  66. package/dist/test/room-kick-revocation.integration.test.js.map +1 -1
  67. package/dist/test/room-leave-revocation.integration.test.js +10 -9
  68. package/dist/test/room-leave-revocation.integration.test.js.map +1 -1
  69. package/dist/test/room-path.test.js +16 -17
  70. package/dist/test/room-path.test.js.map +1 -1
  71. package/dist/test/room-read-directed.integration.test.js +14 -11
  72. package/dist/test/room-read-directed.integration.test.js.map +1 -1
  73. package/dist/test/room-router.test.js +27 -29
  74. package/dist/test/room-router.test.js.map +1 -1
  75. package/dist/test/room-send-directed.integration.test.js +11 -12
  76. package/dist/test/room-send-directed.integration.test.js.map +1 -1
  77. package/dist/test/room-send-retry-queue.test.js +10 -11
  78. package/dist/test/room-send-retry-queue.test.js.map +1 -1
  79. package/dist/test/room-send-retry.integration.test.js +5 -8
  80. package/dist/test/room-send-retry.integration.test.js.map +1 -1
  81. package/dist/test/room-state-sync.integration.test.js +18 -15
  82. package/dist/test/room-state-sync.integration.test.js.map +1 -1
  83. package/dist/test/room-token-store.test.js +21 -22
  84. package/dist/test/room-token-store.test.js.map +1 -1
  85. package/dist/test/room-token-verification.test.js +19 -20
  86. package/dist/test/room-token-verification.test.js.map +1 -1
  87. package/dist/test/state-sync-convergence.test.js +25 -26
  88. package/dist/test/state-sync-convergence.test.js.map +1 -1
  89. package/dist/test/visibility.integration.test.js +48 -49
  90. package/dist/test/visibility.integration.test.js.map +1 -1
  91. package/dist/test/wire-mesh-identity.test.js +7 -8
  92. package/dist/test/wire-mesh-identity.test.js.map +1 -1
  93. package/package.json +9 -5
@@ -1 +1 @@
1
- {"version":3,"file":"room-leave-revocation.integration.test.js","sourceRoot":"","sources":["../../src/test/room-leave-revocation.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,SAAS,SAAS;IAChB,QAAQ,IAAI,CAAC,CAAC;IACd,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAY,EACZ,IAAY;IAKZ,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,KAAK,CAAC,aAAa,CAAC;QACxB,IAAI;QACJ,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,SAAS,IAAI,EAAE;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,KAAgB,EAChB,MAAiB,EACjB,MAAc;IAEd,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,OAAO,CACX,GAAG,EAAE,CACH,KAAK;SACF,oBAAoB,EAAE;SACtB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,EAC1E,4CAA4C,CAC7C,CAAC;IACF,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,WAAW,CAAC;AACpB,CAAC;AAED,KAAK,IAAI,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;IAC5F,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAmB,CAC/D,IAAI,EACJ,UAAU,CACX,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEvE,IAAI,CAAC;QACH,MAAM,OAAO,CACX,GAAG,EAAE,CACH,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS;YACtD,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EACxD,yBAAyB,CAC1B,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAE7C,MAAM,eAAe,GAAoB,EAAE,CAAC;QAC5C,KAAK,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACrC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,OAAO,CACX,GAAG,EAAE,CACH,eAAe,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,CACjE,EACH,+BAA+B,CAChC,CAAC;QAEF,oEAAoE;QACpE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,OAAO,CAClB,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,EACrE,EAAE,IAAI,EAAE,cAAc,EAAE,CACzB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,IAAI,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;IAC9G,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,mBAAmB,CACnE,IAAI,EACJ,QAAQ,CACT,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAC3D,uBAAuB,CACxB,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAoB,EAAE,CAAC;QAC5C,KAAK,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACrC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,SAAS,EACvD,+BAA+B,CAChC,CAAC;QAEF,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEpE,MAAM,OAAO,CACX,GAAG,EAAE,CACH,eAAe,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CACpE,EACH,kCAAkC,CACnC,CAAC;QACF,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CACnC,CAAC,KAAK,EAAgE,EAAE,CACtE,KAAK,CAAC,IAAI,KAAK,iBAAiB,CACnC,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"room-leave-revocation.integration.test.js","sourceRoot":"","sources":["../../src/test/room-leave-revocation.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,30 @@
1
- import { test } from "node:test";
2
- import assert from "node:assert/strict";
1
+ import { test, expect } from "vitest";
3
2
  import { dmRoomPath, ownerNamedRoomPath, parseRoomPath, slugRoomName, } from "../core/room-path.js";
4
3
  const OWNER = "1".repeat(64);
5
4
  const OTHER = "2".repeat(64);
6
5
  test("ownerNamedRoomPath joins the owner and local name with a slash", () => {
7
- assert.equal(ownerNamedRoomPath(OWNER, "general"), `${OWNER}/general`);
6
+ expect(ownerNamedRoomPath(OWNER, "general")).toBe(`${OWNER}/general`);
8
7
  });
9
8
  test("ownerNamedRoomPath rejects an owner that isn't 64-character lowercase hex", () => {
10
- assert.throws(() => ownerNamedRoomPath("not-hex", "general"));
9
+ expect(() => ownerNamedRoomPath("not-hex", "general")).toThrow();
11
10
  });
12
11
  test("ownerNamedRoomPath rejects a local name outside [A-Za-z0-9_-]+", () => {
13
- assert.throws(() => ownerNamedRoomPath(OWNER, "has spaces"));
14
- assert.throws(() => ownerNamedRoomPath(OWNER, "has.dots"));
12
+ expect(() => ownerNamedRoomPath(OWNER, "has spaces")).toThrow();
13
+ expect(() => ownerNamedRoomPath(OWNER, "has.dots")).toThrow();
15
14
  });
16
15
  test("dmRoomPath joins the bytewise-ascending sorted pair with a plus", () => {
17
- assert.equal(dmRoomPath(OWNER, OTHER), `${OWNER}+${OTHER}`);
18
- assert.equal(dmRoomPath(OTHER, OWNER), `${OWNER}+${OTHER}`);
16
+ expect(dmRoomPath(OWNER, OTHER)).toBe(`${OWNER}+${OTHER}`);
17
+ expect(dmRoomPath(OTHER, OWNER)).toBe(`${OWNER}+${OTHER}`);
19
18
  });
20
19
  test("dmRoomPath refuses to name the same device twice", () => {
21
- assert.throws(() => dmRoomPath(OWNER, OWNER));
20
+ expect(() => dmRoomPath(OWNER, OWNER)).toThrow();
22
21
  });
23
22
  test("dmRoomPath rejects a participant that isn't 64-character lowercase hex", () => {
24
- assert.throws(() => dmRoomPath("not-hex", OTHER));
23
+ expect(() => dmRoomPath("not-hex", OTHER)).toThrow();
25
24
  });
26
25
  test("parseRoomPath recognises an owner-named path", () => {
27
26
  const parsed = parseRoomPath(`${OWNER}/general`);
28
- assert.deepEqual(parsed, {
27
+ expect(parsed).toEqual({
29
28
  kind: "owner-named",
30
29
  owner: OWNER,
31
30
  localName: "general",
@@ -33,22 +32,22 @@ test("parseRoomPath recognises an owner-named path", () => {
33
32
  });
34
33
  test("parseRoomPath recognises a DM path", () => {
35
34
  const parsed = parseRoomPath(`${OWNER}+${OTHER}`);
36
- assert.deepEqual(parsed, {
35
+ expect(parsed).toEqual({
37
36
  kind: "dm",
38
37
  participants: [OWNER, OTHER],
39
38
  });
40
39
  });
41
40
  test("parseRoomPath rejects a path shaped like neither", () => {
42
- assert.throws(() => parseRoomPath("just-a-name"));
41
+ expect(() => parseRoomPath("just-a-name")).toThrow();
43
42
  });
44
43
  test("slugRoomName replaces every character outside [A-Za-z0-9_-] with a hyphen", () => {
45
- assert.equal(slugRoomName("documents.js"), "documents-js");
46
- assert.equal(slugRoomName("my project"), "my-project");
44
+ expect(slugRoomName("documents.js")).toBe("documents-js");
45
+ expect(slugRoomName("my project")).toBe("my-project");
47
46
  });
48
47
  test("slugRoomName leaves an already-valid name unchanged", () => {
49
- assert.equal(slugRoomName("agent-comms_2"), "agent-comms_2");
48
+ expect(slugRoomName("agent-comms_2")).toBe("agent-comms_2");
50
49
  });
51
50
  test("slugRoomName rejects a name with nothing left to slug", () => {
52
- assert.throws(() => slugRoomName("..."));
51
+ expect(() => slugRoomName("...")).toThrow();
53
52
  });
54
53
  //# sourceMappingURL=room-path.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"room-path.test.js","sourceRoot":"","sources":["../../src/test/room-path.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-path.test.js","sourceRoot":"","sources":["../../src/test/room-path.test.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,7 @@
3
3
  *
4
4
  * Membership is set up by minting and persisting the member's own token directly, matching room-send-directed.integration.test.ts's own reasoning: the legacy full-state-sync makes a real room.join round trip structurally unreachable in a two-peer test here, and it's irrelevant to what this file tests.
5
5
  */
6
- import * as assert from "node:assert/strict";
7
- import { test } from "node:test";
6
+ import { test, expect } from "vitest";
8
7
  import { mintCapabilityToken } from "wire-mesh-core/domain/tokens";
9
8
  import { createSystemClock } from "wire-mesh-core/adapters/system-clock";
10
9
  import { deviceIdFromHex } from "wire-mesh-core/domain/device-id";
@@ -57,12 +56,12 @@ async function grantMembership(ownerSlot, bearerSlot, roomPath, bearerDeviceHex)
57
56
  expires: clock.now() + 60_000,
58
57
  delegationsRemaining: 0,
59
58
  });
60
- assert.ok(verdict.ok, "expected the fixture grant to mint successfully");
59
+ expect(verdict.ok, "expected the fixture grant to mint successfully").toBeTruthy();
61
60
  if (!verdict.ok)
62
61
  return;
63
62
  saveRoomToken(bearerSlot, roomPath, verdict.token);
64
63
  }
65
- void test("reading a directed room.send notifies only its own author via room.read", async () => {
64
+ test("reading a directed room.send notifies only its own author via room.read", async () => {
66
65
  const { owner, ownerSlot, member, memberSlot } = await makeConnectedPair(freshPort());
67
66
  try {
68
67
  const room = await owner.createRoom({
@@ -87,20 +86,24 @@ void test("reading a directed room.send notifies only its own author via room.re
87
86
  // fireLocalDelivery's own auto-mark-read timer fires markRead for member, which should reach owner as a directed room.read -- no explicit action needed here.
88
87
  await waitFor(() => ownerDeliveries.some((event) => event.type === "delivery_status" && event.status === "read"), "owner receives the read receipt");
89
88
  const readReceipt = ownerDeliveries.find((event) => event.type === "delivery_status" && event.status === "read");
90
- assert.ok(readReceipt);
91
- assert.equal(readReceipt.agent, member.peerId);
92
- assert.equal(readReceipt.room, room.id);
89
+ expect(readReceipt).toBeTruthy();
90
+ if (readReceipt === undefined)
91
+ throw new Error("expected a read-receipt delivery event");
92
+ expect(readReceipt.agent).toBe(member.peerId);
93
+ expect(readReceipt.room).toBe(room.id);
93
94
  const ownerHistory = await owner.readRoomMessages(room.id);
94
95
  const sent = ownerHistory.find((m) => m.content === "hello there");
95
- assert.ok(sent);
96
- assert.ok(sent.readBy.includes(member.peerId));
96
+ expect(sent).toBeTruthy();
97
+ if (sent === undefined)
98
+ throw new Error("expected to find the sent message");
99
+ expect(sent.readBy.includes(member.peerId)).toBeTruthy();
97
100
  }
98
101
  finally {
99
102
  await member.shutdown();
100
103
  await owner.shutdown();
101
104
  }
102
105
  });
103
- void test("reading a message from a peer with no room:member token for it does nothing beyond the local readBy update", async () => {
106
+ test("reading a message from a peer with no room:member token for it does nothing beyond the local readBy update", async () => {
104
107
  const { owner, ownerSlot, member, memberSlot } = await makeConnectedPair(freshPort());
105
108
  try {
106
109
  const room = await owner.createRoom({
@@ -122,7 +125,7 @@ void test("reading a message from a peer with no room:member token for it does n
122
125
  await waitFor(() => memberDeliveries.some((event) => event.type === "room_message"), "member receives the directed room.send");
123
126
  // Give the auto-mark-read timer a real chance to fire and (incorrectly) notify owner before asserting it never did.
124
127
  await new Promise((resolve) => setTimeout(resolve, 300));
125
- assert.equal(ownerDeliveries.some((event) => event.type === "delivery_status"), false);
128
+ expect(ownerDeliveries.some((event) => event.type === "delivery_status")).toBe(false);
126
129
  }
127
130
  finally {
128
131
  await member.shutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"room-read-directed.integration.test.js","sourceRoot":"","sources":["../../src/test/room-read-directed.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-read-directed.integration.test.js","sourceRoot":"","sources":["../../src/test/room-read-directed.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,SAAS,SAAS;IAChB,QAAQ,IAAI,CAAC,CAAC;IACd,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAM3C,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,KAAK,CAAC,aAAa,CAAC;QACxB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,MAAM,MAAM,CAAC,aAAa,CAAC;QACzB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IAEH,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAC3D,6BAA6B,CAC9B,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAClD,CAAC;AAED,kOAAkO;AAClO,KAAK,UAAU,eAAe,CAC5B,SAAuB,EACvB,UAAwB,EACxB,QAAgB,EAChB,eAAuB;IAEvB,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;QACxC,QAAQ,EAAE,aAAa;QACvB,KAAK;QACL,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC;QACxC,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM;QAC7B,oBAAoB,EAAE,CAAC;KACxB,CAAC,CAAC;IACH,MAAM,CACJ,OAAO,CAAC,EAAE,EACV,iDAAiD,CAClD,CAAC,UAAU,EAAE,CAAC;IACf,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO;IACxB,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;IACzF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAC5C,MAAM,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,0RAA0R;QAC1R,MAAM,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrE,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,eAAe,GAAoB,EAAE,CAAC;QAC5C,KAAK,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACrC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAoB,EAAE,CAAC;QAC7C,MAAM,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACtC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAClE,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,EACrE,wCAAwC,CACzC,CAAC;QAEF,8JAA8J;QAC9J,MAAM,OAAO,CACX,GAAG,EAAE,CACH,eAAe,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAC9D,EACH,iCAAiC,CAClC,CAAC;QACF,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CACtC,CAAC,KAAK,EAAgE,EAAE,CACtE,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAC9D,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,WAAW,KAAK,SAAS;YAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS;YACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3D,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4GAA4G,EAAE,KAAK,IAAI,EAAE;IAC5H,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAC5C,MAAM,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,0OAA0O;QAC1O,MAAM,eAAe,GAAoB,EAAE,CAAC;QAC5C,KAAK,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACrC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAoB,EAAE,CAAC;QAC7C,MAAM,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACtC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,MAAM,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,EACrE,wCAAwC,CACzC,CAAC;QAEF,oHAAoH;QACpH,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,CACJ,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAClE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,21 +1,20 @@
1
- import { describe, it, mock } from "node:test";
2
- import assert from "node:assert/strict";
1
+ import { describe, it, vi, expect } from "vitest";
3
2
  import { FRAME_VERB, buildCommand } from "../core/wire-mesh-transport.js";
4
3
  import { createRoomRouter } from "../core/room-router.js";
5
4
  const TEST_HANDLE = { id: "a".repeat(64) };
6
5
  function fakeEvents() {
7
6
  return {
8
- onMessage: mock.fn(),
9
- onIntroduction: mock.fn(),
10
- onConnectionRequest: mock.fn(),
11
- onPeerConnected: mock.fn(),
12
- onPeerDisconnected: mock.fn(),
13
- onPeerList: mock.fn(),
14
- onPeerJoined: mock.fn(),
15
- onBecomeCoordinator: mock.fn(),
16
- onError: mock.fn(),
17
- onRevocationAnnounce: mock.fn(),
18
- onPresenceAdvert: mock.fn(),
7
+ onMessage: vi.fn(),
8
+ onIntroduction: vi.fn(),
9
+ onConnectionRequest: vi.fn(),
10
+ onPeerConnected: vi.fn(),
11
+ onPeerDisconnected: vi.fn(),
12
+ onPeerList: vi.fn(),
13
+ onPeerJoined: vi.fn(),
14
+ onBecomeCoordinator: vi.fn(),
15
+ onError: vi.fn(),
16
+ onRevocationAnnounce: vi.fn(),
17
+ onPresenceAdvert: vi.fn(),
19
18
  };
20
19
  }
21
20
  function fakeRequest(command, token) {
@@ -37,8 +36,9 @@ describe("createRoomRouter", () => {
37
36
  const router = createRoomRouter({ events });
38
37
  const { request, responses } = fakeRequest(buildCommand({ method: "peer_list", peers: [] }));
39
38
  await router.handleRequest(request, TEST_HANDLE);
40
- assert.equal(events.onPeerList.mock.callCount(), 1);
41
- assert.deepEqual(responses, [{ result: "ok" }]);
39
+ expect(events.onPeerList.mock.calls
40
+ .length).toBe(1);
41
+ expect(responses).toEqual([{ result: "ok" }]);
42
42
  });
43
43
  it("routes an otherwise-well-formed FRAME_VERB payload with no recognised case to the onMessage catch-all", async () => {
44
44
  const events = fakeEvents();
@@ -49,8 +49,9 @@ describe("createRoomRouter", () => {
49
49
  params: { message: { method: "not-a-real-method" } },
50
50
  });
51
51
  await router.handleRequest(request, TEST_HANDLE);
52
- assert.equal(events.onMessage.mock.callCount(), 1);
53
- assert.deepEqual(responses, [{ result: "ok" }]);
52
+ expect(events.onMessage.mock.calls
53
+ .length).toBe(1);
54
+ expect(responses).toEqual([{ result: "ok" }]);
54
55
  });
55
56
  it("responds ok without routing anything for a FRAME_VERB payload with no message field at all", async () => {
56
57
  const events = fakeEvents();
@@ -60,8 +61,9 @@ describe("createRoomRouter", () => {
60
61
  params: {},
61
62
  });
62
63
  await router.handleRequest(request, TEST_HANDLE);
63
- assert.equal(events.onMessage.mock.callCount(), 0);
64
- assert.deepEqual(responses, [{ result: "ok" }]);
64
+ expect(events.onMessage.mock.calls
65
+ .length).toBe(0);
66
+ expect(responses).toEqual([{ result: "ok" }]);
65
67
  });
66
68
  it("dispatches a registered room verb to its own handler", async () => {
67
69
  const events = fakeEvents();
@@ -80,8 +82,8 @@ describe("createRoomRouter", () => {
80
82
  params: { verb: "room.send", text: "hi" },
81
83
  });
82
84
  await router.handleRequest(request, TEST_HANDLE);
83
- assert.deepEqual(handled, [{ verb: "room.send", text: "hi" }]);
84
- assert.deepEqual(responses, [{ result: "ok" }]);
85
+ expect(handled).toEqual([{ verb: "room.send", text: "hi" }]);
86
+ expect(responses).toEqual([{ result: "ok" }]);
85
87
  });
86
88
  it("refuses an unregistered room verb with unsupported_verb", async () => {
87
89
  const events = fakeEvents();
@@ -91,8 +93,8 @@ describe("createRoomRouter", () => {
91
93
  params: { verb: "room.send", text: "hi" },
92
94
  });
93
95
  await router.handleRequest(request, TEST_HANDLE);
94
- assert.equal(responses.length, 1);
95
- assert.deepEqual(responses[0], {
96
+ expect(responses.length).toBe(1);
97
+ expect(responses[0]).toEqual({
96
98
  result: "error",
97
99
  code: "unsupported_verb",
98
100
  });
@@ -105,9 +107,7 @@ describe("createRoomRouter", () => {
105
107
  params: { verb: "exec.list" },
106
108
  });
107
109
  await router.handleRequest(request, TEST_HANDLE);
108
- assert.deepEqual(responses, [
109
- { result: "error", code: "unsupported_verb" },
110
- ]);
110
+ expect(responses).toEqual([{ result: "error", code: "unsupported_verb" }]);
111
111
  });
112
112
  it("refuses a params object with no verb field at all", async () => {
113
113
  const events = fakeEvents();
@@ -117,9 +117,7 @@ describe("createRoomRouter", () => {
117
117
  params: {},
118
118
  });
119
119
  await router.handleRequest(request, TEST_HANDLE);
120
- assert.deepEqual(responses, [
121
- { result: "error", code: "unsupported_verb" },
122
- ]);
120
+ expect(responses).toEqual([{ result: "error", code: "unsupported_verb" }]);
123
121
  });
124
122
  });
125
123
  //# sourceMappingURL=room-router.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"room-router.test.js","sourceRoot":"","sources":["../../src/test/room-router.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-router.test.js","sourceRoot":"","sources":["../../src/test/room-router.test.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,7 @@
3
3
  *
4
4
  * Membership is set up by minting and persisting the member's own token directly, not by driving a real room.join round trip: MeshStore's legacy full-state-sync (still active per the "both paths coexist" transition) makes two mesh-connected peers instantly aware of any room the moment it's created, so member.joinRoom(room.id, ...) always takes the already-known-locally branch rather than the wire-level remote-join path -- the same race #73's own tests had to route around, and irrelevant to what this file actually tests (room.send, not room.join).
5
5
  */
6
- import * as assert from "node:assert/strict";
7
- import { test } from "node:test";
6
+ import { test, expect } from "vitest";
8
7
  import { mintCapabilityToken } from "wire-mesh-core/domain/tokens";
9
8
  import { createSystemClock } from "wire-mesh-core/adapters/system-clock";
10
9
  import { deviceIdFromHex } from "wire-mesh-core/domain/device-id";
@@ -57,12 +56,12 @@ async function grantMembership(ownerSlot, memberSlot, roomPath, memberDeviceHex)
57
56
  expires: clock.now() + 60_000,
58
57
  delegationsRemaining: 0,
59
58
  });
60
- assert.ok(verdict.ok, "expected the fixture grant to mint successfully");
59
+ expect(verdict.ok, "expected the fixture grant to mint successfully").toBeTruthy();
61
60
  if (!verdict.ok)
62
61
  return;
63
62
  saveRoomToken(memberSlot, roomPath, verdict.token);
64
63
  }
65
- void test("a directed room.send delivers to the recipient's own onDelivery", async () => {
64
+ test("a directed room.send delivers to the recipient's own onDelivery", async () => {
66
65
  const { owner, ownerSlot, member, memberSlot } = await makeConnectedPair(freshPort());
67
66
  try {
68
67
  const room = await owner.createRoom({
@@ -79,19 +78,19 @@ void test("a directed room.send delivers to the recipient's own onDelivery", asy
79
78
  await owner.sendRoomMessageDirected(room.id, member.peerId, "hello there");
80
79
  await waitFor(() => deliveries.some((event) => event.type === "room_message"), "member receives the directed room.send");
81
80
  const delivered = deliveries.find((event) => event.type === "room_message");
82
- assert.ok(delivered);
83
- if (delivered.type !== "room_message")
81
+ expect(delivered).toBeTruthy();
82
+ if (delivered?.type !== "room_message")
84
83
  return;
85
- assert.equal(delivered.message.content, "hello there");
86
- assert.equal(delivered.message.from, owner.peerId);
87
- assert.equal(delivered.message.room, room.id);
84
+ expect(delivered.message.content).toBe("hello there");
85
+ expect(delivered.message.from).toBe(owner.peerId);
86
+ expect(delivered.message.room).toBe(room.id);
88
87
  }
89
88
  finally {
90
89
  await member.shutdown();
91
90
  await owner.shutdown();
92
91
  }
93
92
  });
94
- void test("a directed room.send from a member (not just the owner) also delivers", async () => {
93
+ test("a directed room.send from a member (not just the owner) also delivers", async () => {
95
94
  const { owner, ownerSlot, member, memberSlot } = await makeConnectedPair(freshPort());
96
95
  try {
97
96
  const room = await owner.createRoom({
@@ -113,7 +112,7 @@ void test("a directed room.send from a member (not just the owner) also delivers
113
112
  await owner.shutdown();
114
113
  }
115
114
  });
116
- void test("sendRoomMessageDirected throws when this store holds no token for the room", async () => {
115
+ test("sendRoomMessageDirected throws when this store holds no token for the room", async () => {
117
116
  const { owner, member } = await makeConnectedPair(freshPort());
118
117
  try {
119
118
  const room = await owner.createRoom({
@@ -123,7 +122,7 @@ void test("sendRoomMessageDirected throws when this store holds no token for the
123
122
  description: "",
124
123
  });
125
124
  // Deliberately not granted -- member has no persisted token for this room.
126
- await assert.rejects(member.sendRoomMessageDirected(room.id, owner.peerId, "uninvited"), /No room:member token/);
125
+ await expect(member.sendRoomMessageDirected(room.id, owner.peerId, "uninvited")).rejects.toThrow(/No room:member token/);
127
126
  }
128
127
  finally {
129
128
  await member.shutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"room-send-directed.integration.test.js","sourceRoot":"","sources":["../../src/test/room-send-directed.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,SAAS,SAAS;IAChB,QAAQ,IAAI,CAAC,CAAC;IACd,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAM3C,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,KAAK,CAAC,aAAa,CAAC;QACxB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,MAAM,MAAM,CAAC,aAAa,CAAC;QACzB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IAEH,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAC3D,6BAA6B,CAC9B,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAClD,CAAC;AAED,gSAAgS;AAChS,KAAK,UAAU,eAAe,CAC5B,SAAuB,EACvB,UAAwB,EACxB,QAAgB,EAChB,eAAuB;IAEvB,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC;QACxC,QAAQ,EAAE,aAAa;QACvB,KAAK;QACL,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC;QACxC,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM;QAC7B,oBAAoB,EAAE,CAAC;KACxB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,iDAAiD,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO;IACxB,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IACtF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAC5C,MAAM,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAErE,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,MAAM,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACtC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAE3E,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,EAC/D,wCAAwC,CACzC,CAAC;QACF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;QAC5E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACrB,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc;YAAE,OAAO;QAC9C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,IAAI,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;IAC5F,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAC5C,MAAM,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAErE,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,KAAK,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACrC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEvE,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,EAC/D,uCAAuC,CACxC,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,IAAI,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;IACjG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;QACH,2EAA2E;QAC3E,MAAM,MAAM,CAAC,OAAO,CAClB,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,EAClE,sBAAsB,CACvB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"room-send-directed.integration.test.js","sourceRoot":"","sources":["../../src/test/room-send-directed.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Unit tests for the directed room.send fan-out's own retry queue (P3.5): a send that fails because its target member isn't currently reachable is queued rather than thrown or dropped, and retried the moment that member's connection is (re)established -- handlePeerConnected fires for exactly that event, so these tests trigger it directly via store.events.onPeerConnected rather than driving a real second peer (see room-send-retry.integration.test.ts for the real, two-peer version of this same acceptance behaviour).
3
3
  */
4
- import * as assert from "node:assert/strict";
5
- import { test } from "node:test";
4
+ import { test, expect } from "vitest";
6
5
  import { MeshStore } from "../core/mesh-store.js";
7
6
  import { deleteRoomToken } from "../core/identity-store.js";
8
7
  import { waitFor, wireTestTransport } from "./test-transport.js";
@@ -47,7 +46,7 @@ function fakeTransport() {
47
46
  },
48
47
  };
49
48
  }
50
- void test("a room.send to an unreachable member is queued and retried once it reconnects", async () => {
49
+ test("a room.send to an unreachable member is queued and retried once it reconnects", async () => {
51
50
  const store = new MeshStore();
52
51
  await wireTestTransport(store);
53
52
  const owner = await store.registerAgent({
@@ -68,12 +67,12 @@ void test("a room.send to an unreachable member is queued and retried once it re
68
67
  const { transport, attempts, setConnected } = fakeTransport();
69
68
  store.setTransport(transport);
70
69
  await store.sendRoomMessage(room.id, owner.id, "hello");
71
- assert.equal(attempts.length, 1, "the first, failed attempt was made");
70
+ expect(attempts.length, "the first, failed attempt was made").toBe(1);
72
71
  setConnected(true);
73
72
  store.events.onPeerConnected({ id: MEMBER_ID }, { id: MEMBER_ID, port: 0, startedAt: new Date().toISOString() });
74
73
  await waitFor(() => attempts.length === 2, "the queued send to retry once the member reconnects");
75
74
  });
76
- void test("the retry queue is bounded oldest-first per member", async () => {
75
+ test("the retry queue is bounded oldest-first per member", async () => {
77
76
  const store = new MeshStore();
78
77
  await wireTestTransport(store);
79
78
  const owner = await store.registerAgent({
@@ -97,7 +96,7 @@ void test("the retry queue is bounded oldest-first per member", async () => {
97
96
  for (let i = 0; i < QUEUE_CAP + overflow; i++) {
98
97
  await store.sendRoomMessage(room.id, owner.id, `msg-${String(i)}`);
99
98
  }
100
- assert.equal(attempts.length, QUEUE_CAP + overflow);
99
+ expect(attempts.length).toBe(QUEUE_CAP + overflow);
101
100
  attempts.length = 0;
102
101
  setConnected(true);
103
102
  store.events.onPeerConnected({ id: MEMBER_ID }, { id: MEMBER_ID, port: 0, startedAt: new Date().toISOString() });
@@ -109,10 +108,10 @@ void test("the retry queue is bounded oldest-first per member", async () => {
109
108
  return undefined;
110
109
  return typeof params.text === "string" ? params.text : undefined;
111
110
  }
112
- assert.equal(textOf(attempts[0]), `msg-${String(overflow)}`);
113
- assert.equal(textOf(attempts[attempts.length - 1]), `msg-${String(QUEUE_CAP + overflow - 1)}`);
111
+ expect(textOf(attempts[0])).toBe(`msg-${String(overflow)}`);
112
+ expect(textOf(attempts[attempts.length - 1])).toBe(`msg-${String(QUEUE_CAP + overflow - 1)}`);
114
113
  });
115
- void test("a flush drops (not re-queues) a send whose room this store no longer holds a token for", async () => {
114
+ test("a flush drops (not re-queues) a send whose room this store no longer holds a token for", async () => {
116
115
  const store = new MeshStore();
117
116
  const slot = await wireTestTransport(store);
118
117
  const owner = await store.registerAgent({
@@ -133,11 +132,11 @@ void test("a flush drops (not re-queues) a send whose room this store no longer
133
132
  const { transport, attempts } = fakeTransport();
134
133
  store.setTransport(transport);
135
134
  await store.sendRoomMessage(room.id, owner.id, "hello");
136
- assert.equal(attempts.length, 1);
135
+ expect(attempts.length).toBe(1);
137
136
  deleteRoomToken(slot, room.id);
138
137
  store.events.onPeerConnected({ id: MEMBER_ID }, { id: MEMBER_ID, port: 0, startedAt: new Date().toISOString() });
139
138
  // No token to present -- give the flush a moment to run, then confirm it made no further attempt.
140
139
  await new Promise((resolve) => setTimeout(resolve, 50));
141
- assert.equal(attempts.length, 1);
140
+ expect(attempts.length).toBe(1);
142
141
  });
143
142
  //# sourceMappingURL=room-send-retry-queue.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"room-send-retry-queue.test.js","sourceRoot":"","sources":["../../src/test/room-send-retry-queue.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-send-retry-queue.test.js","sourceRoot":"","sources":["../../src/test/room-send-retry-queue.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Integration test for issue #28's own acceptance behaviour, re-verified against P3.5's directed fan-out: a room message sent while its recipient is offline must still reach the recipient once it reconnects. Unlike the legacy full-state-sync this replaces, a directed room.send to a disconnected member fails immediately rather than eventually converging, so the fan-out queues it for retry (pendingRoomSends) and flushes that queue the moment the member's connection is (re)established (handlePeerConnected). Replaces downtime-replay.integration.test.ts, whose own scenario relied on deliveryQueues/applyStateSync -- machinery this fan-out no longer uses for message delivery.
3
3
  */
4
- import * as assert from "node:assert/strict";
5
4
  import * as fs from "node:fs";
6
5
  import { tmpdir } from "node:os";
7
6
  import path from "node:path";
7
+ import { test, expect } from "vitest";
8
8
  import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
9
9
  import { createSystemClock } from "wire-mesh-core/adapters/system-clock";
10
10
  import { createRevocationView } from "wire-mesh-core/domain/revocation-view";
@@ -36,7 +36,7 @@ async function waitFor(what, check) {
36
36
  return;
37
37
  await sleep(100);
38
38
  }
39
- assert.ok(false, `timed out waiting for ${what}`);
39
+ expect(false, `timed out waiting for ${what}`).toBeTruthy();
40
40
  }
41
41
  async function main() {
42
42
  const dir = fs.mkdtempSync(path.join(tmpdir(), "agent-comms-send-retry-"));
@@ -93,7 +93,7 @@ async function main() {
93
93
  await sleep(200);
94
94
  // B restarts in the same slot: same identity, same agent ID, same persisted room:member token -- the queued send retries the moment the reconnection to A completes.
95
95
  const identityB2 = loadOrCreateIdentity(slot);
96
- assert.equal(deviceIdToHex(Uint8Array.from(identityB2.deviceId)), deviceIdToHex(Uint8Array.from(identityB.deviceId)));
96
+ expect(deviceIdToHex(Uint8Array.from(identityB2.deviceId))).toBe(deviceIdToHex(Uint8Array.from(identityB.deviceId)));
97
97
  const b2 = await makePeer(identityB2, slot);
98
98
  b2.store.onDelivery = (_id, ev) => {
99
99
  b2.deliveries.push(ev);
@@ -115,10 +115,7 @@ async function main() {
115
115
  releaseIdentityLock(slot);
116
116
  console.log("✓ a queued room.send retries and delivers on reconnect");
117
117
  }
118
- main().catch((err) => {
119
- console.error("Test failed:", err);
120
- process.exitCode = 1;
121
- // The sequence above keeps mesh handles open when it fails partway; exit explicitly so a failure cannot hang the runner.
122
- process.exit(1);
118
+ test("a room.send queued for a disconnected member retries and delivers once that member reconnects", async () => {
119
+ await main();
123
120
  });
124
121
  //# sourceMappingURL=room-send-retry.integration.test.js.map