| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import { describe, expect } from "bun:test"
- import { Effect } from "effect"
- import { CommandV2 } from "@opencode-ai/core/command"
- import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder"
- import { ModelV2 } from "@opencode-ai/core/model"
- import { ProviderV2 } from "@opencode-ai/core/provider"
- import { testEffect } from "./lib/effect"
- const it = testEffect(AppNodeBuilder.build(CommandV2.node))
- describe("CommandV2", () => {
- it.effect("applies command transforms and preserves later overrides", () =>
- Effect.gen(function* () {
- const command = yield* CommandV2.Service
- yield* command.transform((editor) => {
- editor.update("review", (command) => {
- command.template = "First"
- command.description = "Review code"
- })
- editor.update("review", (command) => {
- command.template = "Second"
- command.model = {
- id: ModelV2.ID.make("claude"),
- providerID: ProviderV2.ID.make("anthropic"),
- variant: ModelV2.VariantID.make("high"),
- }
- })
- })
- expect(yield* command.get("review")).toEqual(
- CommandV2.Info.make({
- name: "review",
- template: "Second",
- description: "Review code",
- model: {
- id: ModelV2.ID.make("claude"),
- providerID: ProviderV2.ID.make("anthropic"),
- variant: ModelV2.VariantID.make("high"),
- },
- }),
- )
- expect(yield* command.list()).toEqual([
- CommandV2.Info.make({
- name: "review",
- template: "Second",
- description: "Review code",
- model: {
- id: ModelV2.ID.make("claude"),
- providerID: ProviderV2.ID.make("anthropic"),
- variant: ModelV2.VariantID.make("high"),
- },
- }),
- ])
- }),
- )
- })
|