diff --git a/src/components/chat/AgentComposer.test.tsx b/src/components/chat/AgentComposer.test.tsx new file mode 100644 index 0000000..32c0004 --- /dev/null +++ b/src/components/chat/AgentComposer.test.tsx @@ -0,0 +1,61 @@ +/* eslint-disable @next/next/no-img-element */ +import React from "react"; +import { render, screen } from "@testing-library/react"; +import { ThemeProvider, createTheme } from "@mui/material/styles"; + +import { AgentComposer } from "./AgentComposer"; + +jest.mock("next/image", () => ({ + __esModule: true, + default: (props: React.ImgHTMLAttributes) => ( + {props.alt + ), +})); + +jest.mock("framer-motion", () => ({ + AnimatePresence: ({ children }: { children: React.ReactNode }) => <>{children}, + motion: { + div: ({ + children, + animate: _animate, + exit: _exit, + initial: _initial, + transition: _transition, + ...props + }: React.HTMLAttributes & Record) => ( +
{children}
+ ), + }, +})); + +describe("AgentComposer", () => { + it("places voice input immediately before send without an attachment action", () => { + render( + + + , + ); + + const voiceButton = screen.getByRole("button", { name: "语音输入" }); + const sendButton = screen.getByRole("button", { name: "发送" }); + + expect(screen.queryByRole("button", { name: "上传附件" })).not.toBeInTheDocument(); + expect(screen.getByTitle("快捷指令图标")).toBeInTheDocument(); + expect(screen.queryByAltText("TJWater Agent")).not.toBeInTheDocument(); + expect(voiceButton.nextElementSibling?.contains(sendButton)).toBe(true); + }); +}); diff --git a/src/components/chat/AgentComposer.tsx b/src/components/chat/AgentComposer.tsx index d40a5c1..a6e0b16 100644 --- a/src/components/chat/AgentComposer.tsx +++ b/src/components/chat/AgentComposer.tsx @@ -23,7 +23,6 @@ import StopRounded from "@mui/icons-material/StopRounded"; import MicRounded from "@mui/icons-material/MicRounded"; import KeyboardArrowDownRounded from "@mui/icons-material/KeyboardArrowDownRounded"; import KeyboardArrowUpRounded from "@mui/icons-material/KeyboardArrowUpRounded"; -import AttachFileRounded from "@mui/icons-material/AttachFileRounded"; import BoltRounded from "@mui/icons-material/BoltRounded"; import AutoAwesomeRounded from "@mui/icons-material/AutoAwesomeRounded"; import VerifiedUserRounded from "@mui/icons-material/VerifiedUserRounded"; @@ -125,16 +124,10 @@ export const AgentComposer = React.forwardRef - TJWater Agent + 管网分析快捷指令 @@ -230,41 +223,6 @@ export const AgentComposer = React.forwardRef - - - - {isSttSupported ? ( - isListening ? ( - - - - - - ) : ( - - - - ) - ) : null}