legacy-event.test.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { describe, expect, test } from "bun:test"
  2. import { LegacyEvent } from "../src/legacy-event"
  3. import { PermissionV1 } from "../src/permission-v1"
  4. import { QuestionV1 } from "../src/question-v1"
  5. import { Project } from "../src/project"
  6. import { SessionV1 } from "../src/session-v1"
  7. describe("legacy public event schemas", () => {
  8. test("owns all SessionV1 definitions", () => {
  9. expect(SessionV1.Event.Definitions.map((event) => event.type)).toEqual([
  10. "session.created",
  11. "session.updated",
  12. "session.deleted",
  13. "message.updated",
  14. "message.removed",
  15. "message.part.updated",
  16. "message.part.removed",
  17. "message.part.delta",
  18. "session.diff",
  19. "session.error",
  20. ])
  21. const durable = SessionV1.Event.Definitions.filter((event) => event.durable !== undefined)
  22. expect(durable).toHaveLength(7)
  23. expect(durable.every((event) => event.durable?.aggregate === "sessionID")).toBe(true)
  24. expect(durable.every((event) => event.durable?.version === 1)).toBe(true)
  25. })
  26. test("owns the legacy transient public definitions", () => {
  27. expect([
  28. SessionV1.PartDelta.type,
  29. SessionV1.Diff.type,
  30. SessionV1.Error.type,
  31. PermissionV1.Event.Asked.type,
  32. PermissionV1.Event.Replied.type,
  33. QuestionV1.Event.Asked.type,
  34. QuestionV1.Event.Replied.type,
  35. QuestionV1.Event.Rejected.type,
  36. Project.Event.Updated.type,
  37. LegacyEvent.CommandExecuted.type,
  38. ]).toEqual([
  39. "message.part.delta",
  40. "session.diff",
  41. "session.error",
  42. "permission.asked",
  43. "permission.replied",
  44. "question.asked",
  45. "question.replied",
  46. "question.rejected",
  47. "project.updated",
  48. "command.executed",
  49. ])
  50. })
  51. })