Fix composer send shortcut conflicts

This commit is contained in:
Mohamed Boudra
2026-06-12 13:29:51 +07:00
parent 9e9d0ee305
commit 426547bfcc
16 changed files with 152 additions and 101 deletions
+59 -1
View File
@@ -1,5 +1,5 @@
import { describe, expect, it } from "vitest";
import { computeCanStartDictation } from "./state";
import { computeCanStartDictation, runAlternateSendAction, runDefaultSendAction } from "./state";
const connected = { isConnected: true } as never;
const disconnected = { isConnected: false } as never;
@@ -91,3 +91,61 @@ describe("computeCanStartDictation", () => {
).toBe(false);
});
});
describe("composer send behavior", () => {
function actions() {
const calls: string[] = [];
return {
calls,
handleSendMessage: () => calls.push("send"),
handleQueueMessage: () => calls.push("queue"),
onQueue: () => undefined,
};
}
it("uses Enter to interrupt and Mod+Enter to queue when interrupt is selected", () => {
const defaultAction = actions();
runDefaultSendAction({
defaultSendBehavior: "interrupt",
isAgentRunning: true,
onQueue: defaultAction.onQueue,
handleSendMessage: defaultAction.handleSendMessage,
handleQueueMessage: defaultAction.handleQueueMessage,
});
const alternateAction = actions();
runAlternateSendAction({
defaultSendBehavior: "interrupt",
isAgentRunning: true,
onQueue: alternateAction.onQueue,
handleSendMessage: alternateAction.handleSendMessage,
handleQueueMessage: alternateAction.handleQueueMessage,
});
expect(defaultAction.calls).toEqual(["send"]);
expect(alternateAction.calls).toEqual(["queue"]);
});
it("uses Enter to queue and Mod+Enter to submit when queue is selected", () => {
const defaultAction = actions();
runDefaultSendAction({
defaultSendBehavior: "queue",
isAgentRunning: true,
onQueue: defaultAction.onQueue,
handleSendMessage: defaultAction.handleSendMessage,
handleQueueMessage: defaultAction.handleQueueMessage,
});
const alternateAction = actions();
runAlternateSendAction({
defaultSendBehavior: "queue",
isAgentRunning: true,
onQueue: alternateAction.onQueue,
handleSendMessage: alternateAction.handleSendMessage,
handleQueueMessage: alternateAction.handleQueueMessage,
});
expect(defaultAction.calls).toEqual(["queue"]);
expect(alternateAction.calls).toEqual(["send"]);
});
});