| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { afterEach, expect } from "bun:test"
- import { LayerNode } from "@kirincode-ai/core/effect/layer-node"
- import { FSUtil } from "@kirincode-ai/core/fs-util"
- import { Effect } from "effect"
- import { fileURLToPath } from "url"
- import { InstanceRef } from "../../src/effect/instance-ref"
- import { disposeAllInstances, TestInstance } from "../fixture/fixture"
- import { testEffect } from "../lib/effect"
- const it = testEffect(LayerNode.compile(FSUtil.node))
- afterEach(async () => {
- await disposeAllInstances()
- })
- it.live("effect-cmd.ts does not restore legacy instance ALS", () =>
- Effect.gen(function* () {
- const fs = yield* FSUtil.Service
- const source = yield* fs.readFileString(fileURLToPath(new URL("../../src/cli/effect-cmd.ts", import.meta.url)))
- expect(source).not.toContain("restore(ctx")
- }),
- )
- it.instance(
- "InstanceRef remains the handler context across Effect promise awaits",
- () =>
- Effect.gen(function* () {
- const test = yield* TestInstance
- const ctx = yield* InstanceRef
- if (!ctx) throw new Error("InstanceRef not provided")
- const directory = yield* Effect.promise(async () => {
- await Promise.resolve()
- return ctx.directory
- })
- expect(directory).toBe(test.directory)
- }),
- { git: true },
- )
|