kv.test.ts 961 B

12345678910111213141516171819202122232425
  1. import { describe, expect } from "bun:test"
  2. import { Effect } from "effect"
  3. import { KV } from "@opencode-ai/core/kv"
  4. import { LayerNode } from "@opencode-ai/util/effect/layer-node"
  5. import { testEffect } from "./lib/effect"
  6. const it = testEffect(LayerNode.compile(KV.node))
  7. describe("KV", () => {
  8. it.effect("stores, replaces, and removes JSON values", () =>
  9. Effect.gen(function* () {
  10. const kv = yield* KV.Service
  11. expect(yield* kv.get("wellknown:sources")).toBeUndefined()
  12. yield* kv.set("wellknown:sources", ["https://example.com"])
  13. expect(yield* kv.get("wellknown:sources")).toEqual(["https://example.com"])
  14. yield* kv.set("wellknown:sources", ["https://example.com", "https://example.org"])
  15. expect(yield* kv.get("wellknown:sources")).toEqual(["https://example.com", "https://example.org"])
  16. yield* kv.remove("wellknown:sources")
  17. expect(yield* kv.get("wellknown:sources")).toBeUndefined()
  18. }),
  19. )
  20. })