Skip to content
Source
Sign inSign up

ProviderTurnStartService.testkit.ts

63 lines2.8 KB

1import { SourceControlProviderError, SourceControlProviderKind } from "@t3tools/contracts";
2import * as NodeCrypto from "@effect/platform-node/NodeCrypto";
3import * as NodeServices from "@effect/platform-node/NodeServices";
4import * as ServerConfig from "../config.ts";
5import * as GitManager from "../git/GitManager.ts";
6import * as GitVcsDriver from "../vcs/GitVcsDriver.ts";
7import * as VcsDriverRegistry from "../vcs/VcsDriverRegistry.ts";
8import * as VcsProjectConfig from "../vcs/VcsProjectConfig.ts";
9import * as VcsProcess from "../vcs/VcsProcess.ts";
10import * as ServerSettings from "../serverSettings.ts";
11import * as ProjectSetupScriptRunner from "../project/ProjectSetupScriptRunner.ts";
12import * as ProviderRegistry from "../provider/ProviderRegistry.ts";
13import * as SourceControlProviderRegistry from "../sourceControl/SourceControlProviderRegistry.ts";
14import * as TextGeneration from "../textGeneration/TextGeneration.ts";
15import * as ProjectionStore from "./ProjectionStore.ts";
16import * as ProjectStore from "./ProjectStore.ts";
17import * as Effect from "effect/Effect";
18import * as Layer from "effect/Layer";
19​
20import * as GitWorkflow from "../git/GitWorkflowService.ts";
21import * as ProjectService from "../project/ProjectService.ts";
22​
23export const layer = Layer.merge(
24 Layer.mock(GitWorkflow.GitWorkflowService)({
25 pruneWorktrees: () => Effect.void,
26 createWorktree: () => Effect.succeed({} as never),
27 }),
28 Layer.mock(ProjectService.ProjectService)({
29 getById: () => Effect.succeedNone,
30 }),
31);
32​
33// Keep repository detection, branch selection and worktree creation on the real Git path.
34export const layerRealGit = GitWorkflow.layer.pipe(
35 Layer.provide(GitManager.layer),
36 Layer.provide(
37 Layer.mergeAll(
38 Layer.mock(SourceControlProviderRegistry.SourceControlProviderRegistry)({
39 resolveLink: () => undefined,
40 resolve: ({ cwd }) =>
41 Effect.fail(
42 new SourceControlProviderError({
43 provider: SourceControlProviderKind.make("unknown"),
44 operation: "resolve",
45 cwd,
46 detail: "No source control provider in tests",
47 }),
48 ),
49 }),
50 Layer.mock(TextGeneration.TextGeneration)({}),
51 Layer.mock(ProviderRegistry.ProviderRegistry)({}),
52 Layer.mock(ProjectSetupScriptRunner.ProjectSetupScriptRunner)({}),
53 Layer.mock(ProjectionStore.ProjectionStoreV2)({}),
54 Layer.mock(ProjectStore.ProjectStoreV2)({}),
55 ServerSettings.layerTest(),
56 ),
57 ),
58 Layer.provide(VcsDriverRegistry.layer.pipe(Layer.provide(VcsProjectConfig.layer))),
59 Layer.provideMerge(GitVcsDriver.layer),
60 Layer.provideMerge(VcsProcess.layer),
61 Layer.provideMerge(ServerConfig.layerTest(process.cwd(), { prefix: "t3-recreate-" })),
62 Layer.provideMerge(Layer.mergeAll(NodeServices.layer, NodeCrypto.layer)),
63);