fix(core): harden vcs backend lifecycle
This commit is contained in:
parent
ef1c76a2bf
commit
10a71bae4a
2 changed files with 21 additions and 4 deletions
|
|
@ -1,5 +1,5 @@
|
|||
import { describe, expect } from "bun:test"
|
||||
import { Effect, Exit, Layer, Scope } from "effect"
|
||||
import { Cause, Effect, Exit, Fiber, Layer, Scope } from "effect"
|
||||
import { Vcs as PluginVcs } from "@opencode-ai/plugin/v2/effect"
|
||||
import { LayerNode } from "@opencode-ai/core/effect/layer-node"
|
||||
import { Location } from "@opencode-ai/core/location"
|
||||
|
|
@ -116,6 +116,18 @@ describe("VcsBackends", () => {
|
|||
}).pipe(Effect.scoped, provide),
|
||||
)
|
||||
|
||||
it.live("preserves adapter interruption", () =>
|
||||
Effect.gen(function* () {
|
||||
yield* register(backend({ status: () => Effect.never }))
|
||||
const vcs = yield* Vcs.Service
|
||||
const fiber = yield* Effect.forkChild(vcs.status())
|
||||
yield* Fiber.interrupt(fiber)
|
||||
const exit = yield* Fiber.await(fiber)
|
||||
expect(Exit.isFailure(exit)).toBe(true)
|
||||
if (Exit.isFailure(exit)) expect(Cause.hasInterrupts(exit.cause)).toBe(true)
|
||||
}).pipe(Effect.scoped, provide),
|
||||
)
|
||||
|
||||
it.live("drops rows that fail schema validation", () =>
|
||||
Effect.gen(function* () {
|
||||
yield* register(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue