Fix composer send shortcut conflicts
This commit is contained in:
@@ -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"]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user