mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-24 06:33:01 -04:00
31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
import { describe, expect } from "bun:test"
|
|
import { Effect } from "effect"
|
|
import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder"
|
|
import { Session } from "@opencode-ai/core/session"
|
|
import { SessionEnvironment } from "@opencode-ai/core/session/environment"
|
|
import { testEffect } from "./lib/effect"
|
|
|
|
const it = testEffect(AppNodeBuilder.build(SessionEnvironment.node))
|
|
|
|
describe("SessionEnvironment", () => {
|
|
it.effect("stores replacement snapshots by session", () =>
|
|
Effect.gen(function* () {
|
|
const environments = yield* SessionEnvironment.Service
|
|
const first = Session.ID.make("ses_environment_first")
|
|
const second = Session.ID.make("ses_environment_second")
|
|
|
|
yield* environments.set(first, { TOOLCHAIN: "first", PATH: "/first/bin" })
|
|
yield* environments.set(second, { TOOLCHAIN: "second" })
|
|
yield* environments.set(first, { TOOLCHAIN: "updated" })
|
|
|
|
expect(yield* environments.get(first)).toEqual({ TOOLCHAIN: "updated" })
|
|
expect(yield* environments.get(second)).toEqual({ TOOLCHAIN: "second" })
|
|
|
|
yield* environments.clear(first)
|
|
|
|
expect(yield* environments.get(first)).toBeUndefined()
|
|
expect(yield* environments.get(second)).toEqual({ TOOLCHAIN: "second" })
|
|
}),
|
|
)
|
|
})
|