Compare commits

...

1 Commits

Author SHA1 Message Date
James Long 80af18d24a test(core): simplify repository cache layer wiring 2026-06-20 22:15:15 -04:00
2 changed files with 11 additions and 12 deletions
+2
View File
@@ -1,5 +1,6 @@
import path from "path" import path from "path"
import { Context, Effect, Layer, Schema } from "effect" import { Context, Effect, Layer, Schema } from "effect"
import { LayerNode } from "./effect/layer-node"
import { FSUtil } from "./fs-util" import { FSUtil } from "./fs-util"
import { Git } from "./git" import { Git } from "./git"
import { Global } from "./global" import { Global } from "./global"
@@ -258,6 +259,7 @@ export const defaultLayer: Layer.Layer<Service> = layer.pipe(
Layer.provide(Git.defaultLayer), Layer.provide(Git.defaultLayer),
Layer.provide(Global.defaultLayer), Layer.provide(Global.defaultLayer),
) )
export const node = LayerNode.make(layer, [FSUtil.node, Git.node, EffectFlock.node, Global.node])
function statusForRepository(input: { reuse: boolean; refresh?: boolean; branchMatches?: boolean }) { function statusForRepository(input: { reuse: boolean; refresh?: boolean; branchMatches?: boolean }) {
if (!input.reuse) return "cloned" as const if (!input.reuse) return "cloned" as const
+9 -12
View File
@@ -3,12 +3,10 @@ import fs from "fs/promises"
import path from "path" import path from "path"
import { pathToFileURL } from "url" import { pathToFileURL } from "url"
import { Effect, Layer } from "effect" import { Effect, Layer } from "effect"
import { FSUtil } from "@opencode-ai/core/fs-util" import { LayerNode } from "@opencode-ai/core/effect/layer-node"
import { Git } from "@opencode-ai/core/git"
import { Global } from "@opencode-ai/core/global" import { Global } from "@opencode-ai/core/global"
import { Repository } from "@opencode-ai/core/repository" import { Repository } from "@opencode-ai/core/repository"
import { RepositoryCache } from "@opencode-ai/core/repository-cache" import { RepositoryCache } from "@opencode-ai/core/repository-cache"
import { EffectFlock } from "@opencode-ai/core/util/effect-flock"
import { git, gitRemote } from "./fixture/git" import { git, gitRemote } from "./fixture/git"
import { tmpdir } from "./fixture/tmpdir" import { tmpdir } from "./fixture/tmpdir"
import { testEffect } from "./lib/effect" import { testEffect } from "./lib/effect"
@@ -89,15 +87,14 @@ describe("RepositoryCache", () => {
}) })
function cacheLayer(root: string) { function cacheLayer(root: string) {
const dependencies = Layer.mergeAll( return LayerNode.buildLayer(RepositoryCache.node, {
Global.layerWith({ state: path.join(root, "state"), repos: path.join(root, "repos") }), replacements: [
FSUtil.defaultLayer, LayerNode.replace(
) Global.node,
return RepositoryCache.layer.pipe( Global.layerWith({ state: path.join(root, "state"), repos: path.join(root, "repos") }),
Layer.provide(EffectFlock.layer.pipe(Layer.provide(dependencies))), ),
Layer.provide(Git.defaultLayer), ],
Layer.provide(dependencies), })
)
} }
function withRemote<A, E, R>(body: (fixture: Awaited<ReturnType<typeof gitRemote>>) => Effect.Effect<A, E, R>) { function withRemote<A, E, R>(body: (fixture: Awaited<ReturnType<typeof gitRemote>>) => Effect.Effect<A, E, R>) {