fix(coding-agent): merge piped stdin into initial prompt closes #2315
This commit is contained in:
47
packages/coding-agent/test/initial-message.test.ts
Normal file
47
packages/coding-agent/test/initial-message.test.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import { describe, expect, test } from "vitest";
|
||||
import type { Args } from "../src/cli/args.js";
|
||||
import { buildInitialMessage } from "../src/cli/initial-message.js";
|
||||
|
||||
function createArgs(messages: string[] = []): Args {
|
||||
return {
|
||||
messages: [...messages],
|
||||
fileArgs: [],
|
||||
unknownFlags: new Map(),
|
||||
};
|
||||
}
|
||||
|
||||
describe("buildInitialMessage", () => {
|
||||
test("merges piped stdin with the first CLI message into one prompt", () => {
|
||||
const parsed = createArgs(["Summarize the text given"]);
|
||||
const result = buildInitialMessage({
|
||||
parsed,
|
||||
stdinContent: "README contents\n",
|
||||
});
|
||||
|
||||
expect(result.initialMessage).toBe("README contents\nSummarize the text given");
|
||||
expect(parsed.messages).toEqual([]);
|
||||
});
|
||||
|
||||
test("uses stdin as the initial prompt when no CLI message is present", () => {
|
||||
const parsed = createArgs();
|
||||
const result = buildInitialMessage({
|
||||
parsed,
|
||||
stdinContent: "README contents",
|
||||
});
|
||||
|
||||
expect(result.initialMessage).toBe("README contents");
|
||||
expect(parsed.messages).toEqual([]);
|
||||
});
|
||||
|
||||
test("combines stdin, file text, and first CLI message in one prompt", () => {
|
||||
const parsed = createArgs(["Explain it", "Second message"]);
|
||||
const result = buildInitialMessage({
|
||||
parsed,
|
||||
stdinContent: "stdin\n",
|
||||
fileText: "file\n",
|
||||
});
|
||||
|
||||
expect(result.initialMessage).toBe("stdin\nfile\nExplain it");
|
||||
expect(parsed.messages).toEqual(["Second message"]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user