mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-10 01:39:36 +00:00
53 lines
2.6 KiB
TypeScript
53 lines
2.6 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
import { FileSystem, Integration, Permission, Project, Reference, Session, Workspace } from "../src"
|
|
import { EventManifest } from "../src/event-manifest"
|
|
import { IdeEvent } from "../src/ide-event"
|
|
import { SessionEvent } from "../src/session-event"
|
|
import { SessionTodo } from "../src/session-todo"
|
|
import { SessionV1 } from "../src/session-v1"
|
|
import { WorkspaceEvent } from "../src/workspace-event"
|
|
|
|
describe("public event manifest", () => {
|
|
test("owns the complete public event surface", () => {
|
|
expect(EventManifest.ServerDefinitions.length).toBe(55)
|
|
expect(EventManifest.Definitions.length).toBe(85)
|
|
expect(SessionV1.Event.Definitions).toEqual([
|
|
SessionV1.Event.Created,
|
|
SessionV1.Event.Updated,
|
|
SessionV1.Event.Deleted,
|
|
SessionV1.Event.MessageUpdated,
|
|
SessionV1.Event.MessageRemoved,
|
|
SessionV1.Event.PartUpdated,
|
|
SessionV1.Event.PartRemoved,
|
|
SessionV1.Event.PartDelta,
|
|
SessionV1.Event.Diff,
|
|
SessionV1.Event.Error,
|
|
])
|
|
expect(EventManifest.Latest.size).toBe(85)
|
|
expect(EventManifest.Durable.size).toBe(32)
|
|
})
|
|
|
|
test("uses canonical definitions for current public events", () => {
|
|
expect(Session.Event).toBe(SessionEvent)
|
|
expect(Session.Event.Definitions).toBe(SessionEvent.Definitions)
|
|
expect(Workspace.Event).toBe(WorkspaceEvent)
|
|
expect(Workspace.Event.Definitions).toBe(WorkspaceEvent.Definitions)
|
|
expect(EventManifest.Latest.get("session.next.step.ended")).toBe(SessionEvent.Step.Ended)
|
|
expect(EventManifest.Latest.get("todo.updated")).toBe(SessionTodo.Event.Updated)
|
|
expect(EventManifest.Latest.get("project.updated")).toBe(Project.Event.Updated)
|
|
expect(Project.Event.Definitions).toEqual([Project.Event.Updated])
|
|
expect(FileSystem.Event.Definitions).toEqual([FileSystem.Event.Edited])
|
|
expect(Integration.Event.Definitions).toEqual([Integration.Event.Updated, Integration.Event.ConnectionUpdated])
|
|
expect(Permission.Event.Definitions).toEqual([Permission.Event.Asked, Permission.Event.Replied])
|
|
expect(Reference.Event.Definitions).toEqual([Reference.Event.Updated])
|
|
expect(EventManifest.Latest.has("ide.installed")).toBe(false)
|
|
expect(IdeEvent.Definitions).toEqual([IdeEvent.Installed])
|
|
expect(EventManifest.Definitions.slice(40, 43)).toEqual([
|
|
SessionV1.Event.PartDelta,
|
|
SessionV1.Event.Diff,
|
|
SessionV1.Event.Error,
|
|
])
|
|
expect(EventManifest.Durable.has("session.next.step.ended.1")).toBe(false)
|
|
expect(EventManifest.Durable.get("session.next.step.ended.2")).toBe(SessionEvent.Step.Ended)
|
|
})
|
|
})
|