mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-01 05:30:22 +00:00
refactor(tests): share harnesses for cli and monitor fixtures
This commit is contained in:
@@ -5,22 +5,26 @@ import {
|
||||
shouldEnableWindowsGitBashPasteFallback,
|
||||
} from "./tui.js";
|
||||
|
||||
function createSubmitHarness() {
|
||||
const editor = {
|
||||
setText: vi.fn(),
|
||||
addToHistory: vi.fn(),
|
||||
};
|
||||
const handleCommand = vi.fn();
|
||||
const sendMessage = vi.fn();
|
||||
const handleBangLine = vi.fn();
|
||||
const onSubmit = createEditorSubmitHandler({
|
||||
editor,
|
||||
handleCommand,
|
||||
sendMessage,
|
||||
handleBangLine,
|
||||
});
|
||||
return { editor, handleCommand, sendMessage, handleBangLine, onSubmit };
|
||||
}
|
||||
|
||||
describe("createEditorSubmitHandler", () => {
|
||||
it("routes lines starting with ! to handleBangLine", () => {
|
||||
const editor = {
|
||||
setText: vi.fn(),
|
||||
addToHistory: vi.fn(),
|
||||
};
|
||||
const handleCommand = vi.fn();
|
||||
const sendMessage = vi.fn();
|
||||
const handleBangLine = vi.fn();
|
||||
|
||||
const onSubmit = createEditorSubmitHandler({
|
||||
editor,
|
||||
handleCommand,
|
||||
sendMessage,
|
||||
handleBangLine,
|
||||
});
|
||||
const { handleCommand, sendMessage, handleBangLine, onSubmit } = createSubmitHarness();
|
||||
|
||||
onSubmit("!ls");
|
||||
|
||||
@@ -31,20 +35,7 @@ describe("createEditorSubmitHandler", () => {
|
||||
});
|
||||
|
||||
it("treats a lone ! as a normal message", () => {
|
||||
const editor = {
|
||||
setText: vi.fn(),
|
||||
addToHistory: vi.fn(),
|
||||
};
|
||||
const handleCommand = vi.fn();
|
||||
const sendMessage = vi.fn();
|
||||
const handleBangLine = vi.fn();
|
||||
|
||||
const onSubmit = createEditorSubmitHandler({
|
||||
editor,
|
||||
handleCommand,
|
||||
sendMessage,
|
||||
handleBangLine,
|
||||
});
|
||||
const { sendMessage, handleBangLine, onSubmit } = createSubmitHarness();
|
||||
|
||||
onSubmit("!");
|
||||
|
||||
@@ -54,20 +45,7 @@ describe("createEditorSubmitHandler", () => {
|
||||
});
|
||||
|
||||
it("does not treat leading whitespace before ! as a bang command", () => {
|
||||
const editor = {
|
||||
setText: vi.fn(),
|
||||
addToHistory: vi.fn(),
|
||||
};
|
||||
const handleCommand = vi.fn();
|
||||
const sendMessage = vi.fn();
|
||||
const handleBangLine = vi.fn();
|
||||
|
||||
const onSubmit = createEditorSubmitHandler({
|
||||
editor,
|
||||
handleCommand,
|
||||
sendMessage,
|
||||
handleBangLine,
|
||||
});
|
||||
const { editor, sendMessage, handleBangLine, onSubmit } = createSubmitHarness();
|
||||
|
||||
onSubmit(" !ls");
|
||||
|
||||
@@ -77,20 +55,7 @@ describe("createEditorSubmitHandler", () => {
|
||||
});
|
||||
|
||||
it("trims normal messages before sending and adding to history", () => {
|
||||
const editor = {
|
||||
setText: vi.fn(),
|
||||
addToHistory: vi.fn(),
|
||||
};
|
||||
const handleCommand = vi.fn();
|
||||
const sendMessage = vi.fn();
|
||||
const handleBangLine = vi.fn();
|
||||
|
||||
const onSubmit = createEditorSubmitHandler({
|
||||
editor,
|
||||
handleCommand,
|
||||
sendMessage,
|
||||
handleBangLine,
|
||||
});
|
||||
const { editor, sendMessage, onSubmit } = createSubmitHarness();
|
||||
|
||||
onSubmit(" hello ");
|
||||
|
||||
@@ -99,20 +64,7 @@ describe("createEditorSubmitHandler", () => {
|
||||
});
|
||||
|
||||
it("preserves internal newlines for multiline messages", () => {
|
||||
const editor = {
|
||||
setText: vi.fn(),
|
||||
addToHistory: vi.fn(),
|
||||
};
|
||||
const handleCommand = vi.fn();
|
||||
const sendMessage = vi.fn();
|
||||
const handleBangLine = vi.fn();
|
||||
|
||||
const onSubmit = createEditorSubmitHandler({
|
||||
editor,
|
||||
handleCommand,
|
||||
sendMessage,
|
||||
handleBangLine,
|
||||
});
|
||||
const { editor, handleCommand, sendMessage, handleBangLine, onSubmit } = createSubmitHarness();
|
||||
|
||||
onSubmit("Line 1\nLine 2\nLine 3");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user