test(core): use partial service mocks (#45703)

This commit is contained in:
Kit Langton
2026-08-27 23:13:04 -04:00
committed by GitHub
Unverified
parent 07facd2086
commit a258b17fac
2 changed files with 16 additions and 30 deletions
+12 -21
View File
@@ -45,28 +45,19 @@ const permission = permissionLayer({
),
),
})
const form = Layer.succeed(
Form.Service,
Form.Service.of({
ask: (input: Form.CreateInput) =>
Effect.sync(() => {
captured = input
}).pipe(
Effect.andThen(
Effect.sync(
(): Form.TerminalState =>
reject ? { status: "cancelled" } : { status: "answered", answer: { q0: "Build", q1: ["Dev"] } },
),
const form = Layer.mock(Form.Service, {
ask: (input: Form.CreateInput) =>
Effect.sync(() => {
captured = input
}).pipe(
Effect.andThen(
Effect.sync(
(): Form.TerminalState =>
reject ? { status: "cancelled" } : { status: "answered", answer: { q0: "Build", q1: ["Dev"] } },
),
),
create: () => Effect.die("unused"),
get: () => Effect.die("unused"),
list: () => Effect.die("unused"),
state: () => Effect.die("unused"),
reply: () => Effect.die("unused"),
cancel: () => Effect.die("unused"),
}),
)
),
})
const questionToolNode = makeLocationNode({
name: "test/question-tool-plugin",
layer: Layer.effectDiscard(registerToolPlugin(QuestionTool.Plugin)),
@@ -114,6 +105,7 @@ describe("QuestionTool", () => {
Effect.gen(function* () {
captured = undefined
deny = true
yield* Effect.addFinalizer(() => Effect.sync(() => (deny = false)))
const registry = yield* Tool.Service
expect(
@@ -135,7 +127,6 @@ describe("QuestionTool", () => {
},
})
expect(capturedInput()).toBeUndefined()
deny = false
}),
)
+4 -9
View File
@@ -69,15 +69,10 @@ describe("SkillTool", () => {
),
),
})
const skills = Layer.succeed(
Skill.Service,
Skill.Service.of({
transform: (_transform) => Effect.die("unused"),
reload: () => Effect.die("unused"),
get: (id) => Effect.succeed(current.find((skill) => skill.id === id)),
list: () => Effect.succeed(current),
}),
)
const skills = Layer.mock(Skill.Service, {
get: (id) => Effect.succeed(current.find((skill) => skill.id === id)),
list: () => Effect.succeed(current),
})
const skillToolLayer = AppNodeBuilder.build(LayerNode.group([Tool.node, skillToolNode]), [
[Permission.node, permission],
[Skill.node, skills],