| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import { describe, expect, test } from "bun:test"
- import path from "path"
- import { Session } from "../../src/session"
- import { Bus } from "../../src/bus"
- import { Log } from "../../src/util/log"
- import { Instance } from "../../src/project/instance"
- const projectRoot = path.join(__dirname, "../..")
- Log.init({ print: false })
- describe("session.started event", () => {
- test("should emit session.started event when session is created", async () => {
- await Instance.provide({
- directory: projectRoot,
- fn: async () => {
- let eventReceived = false
- let receivedInfo: Session.Info | undefined
- const unsub = Bus.subscribe(Session.Event.Created, (event) => {
- eventReceived = true
- receivedInfo = event.properties.info as Session.Info
- })
- const session = await Session.create({})
- await new Promise((resolve) => setTimeout(resolve, 100))
- unsub()
- expect(eventReceived).toBe(true)
- expect(receivedInfo).toBeDefined()
- expect(receivedInfo?.id).toBe(session.id)
- expect(receivedInfo?.projectID).toBe(session.projectID)
- expect(receivedInfo?.directory).toBe(session.directory)
- expect(receivedInfo?.title).toBe(session.title)
- await Session.remove(session.id)
- },
- })
- })
- test("session.started event should be emitted before session.updated", async () => {
- await Instance.provide({
- directory: projectRoot,
- fn: async () => {
- const events: string[] = []
- const unsubStarted = Bus.subscribe(Session.Event.Created, () => {
- events.push("started")
- })
- const unsubUpdated = Bus.subscribe(Session.Event.Updated, () => {
- events.push("updated")
- })
- const session = await Session.create({})
- await new Promise((resolve) => setTimeout(resolve, 100))
- unsubStarted()
- unsubUpdated()
- expect(events).toContain("started")
- expect(events).toContain("updated")
- expect(events.indexOf("started")).toBeLessThan(events.indexOf("updated"))
- await Session.remove(session.id)
- },
- })
- })
- })
|