goose2 session working dir (#8624)
This commit is contained in:
@@ -2,12 +2,9 @@ import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
buildProjectSystemPrompt,
|
||||
composeSystemPrompt,
|
||||
defaultArtifactsDir,
|
||||
getProjectArtifactRoots,
|
||||
getProjectFolderName,
|
||||
getProjectFolderOption,
|
||||
resolveEffectiveWorkingDir,
|
||||
resolveProjectWorkingDir,
|
||||
} from "./chatProjectContext";
|
||||
|
||||
describe("chatProjectContext", () => {
|
||||
@@ -111,84 +108,4 @@ describe("chatProjectContext", () => {
|
||||
"/Users/wesb/dev/other/artifacts",
|
||||
]);
|
||||
});
|
||||
|
||||
it("resolves the first working directory to an artifacts subfolder", () => {
|
||||
expect(
|
||||
resolveProjectWorkingDir({
|
||||
workingDirs: ["/Users/wesb/dev/goose2", "/Users/wesb/dev/other"],
|
||||
artifactsDir: "/Users/wesb/.goose/projects/goose2/artifacts",
|
||||
}),
|
||||
).toBe("/Users/wesb/dev/goose2/artifacts");
|
||||
});
|
||||
|
||||
it("falls back to the project artifacts dir when no working dirs exist", () => {
|
||||
expect(
|
||||
resolveProjectWorkingDir({
|
||||
workingDirs: [],
|
||||
artifactsDir: "/Users/wesb/.goose/projects/sample-project/artifacts",
|
||||
}),
|
||||
).toBe("/Users/wesb/.goose/projects/sample-project/artifacts");
|
||||
});
|
||||
|
||||
describe("defaultArtifactsDir", () => {
|
||||
it("normalises path separators and appends .goose/artifacts", () => {
|
||||
expect(defaultArtifactsDir("/Users/wesb")).toBe(
|
||||
"/Users/wesb/.goose/artifacts",
|
||||
);
|
||||
});
|
||||
|
||||
it("normalises backslashes on Windows-style paths", () => {
|
||||
expect(defaultArtifactsDir("C:\\Users\\wesb\\")).toBe(
|
||||
"C:/Users/wesb/.goose/artifacts",
|
||||
);
|
||||
});
|
||||
|
||||
it("strips trailing slashes", () => {
|
||||
expect(defaultArtifactsDir("/Users/wesb/")).toBe(
|
||||
"/Users/wesb/.goose/artifacts",
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("resolveEffectiveWorkingDir", () => {
|
||||
it("returns the project working dir without requiring homeDir", () => {
|
||||
expect(
|
||||
resolveEffectiveWorkingDir({
|
||||
workingDirs: ["/Users/wesb/dev/goose2"],
|
||||
artifactsDir: "/Users/wesb/.goose/projects/goose2/artifacts",
|
||||
}),
|
||||
).toBe("/Users/wesb/dev/goose2/artifacts");
|
||||
});
|
||||
|
||||
it("returns the project working dir when available", () => {
|
||||
expect(
|
||||
resolveEffectiveWorkingDir(
|
||||
{
|
||||
workingDirs: ["/Users/wesb/dev/goose2"],
|
||||
artifactsDir: "/Users/wesb/.goose/projects/goose2/artifacts",
|
||||
},
|
||||
"/Users/wesb",
|
||||
),
|
||||
).toBe("/Users/wesb/dev/goose2/artifacts");
|
||||
});
|
||||
|
||||
it("returns undefined when a project exists but has no working dirs", () => {
|
||||
expect(
|
||||
resolveEffectiveWorkingDir(
|
||||
{ workingDirs: [], artifactsDir: "" },
|
||||
"/Users/wesb",
|
||||
),
|
||||
).toBeUndefined();
|
||||
});
|
||||
|
||||
it("falls back to home artifacts dir when no project", () => {
|
||||
expect(resolveEffectiveWorkingDir(null, "/Users/wesb")).toBe(
|
||||
"/Users/wesb/.goose/artifacts",
|
||||
);
|
||||
});
|
||||
|
||||
it("does not resolve a non-project fallback without homeDir", () => {
|
||||
expect(resolveEffectiveWorkingDir(null)).toBeUndefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user