Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
31 lines
894 B
TypeScript
31 lines
894 B
TypeScript
import { fireEvent, render, screen } from "@testing-library/react";
|
|
import { act } from "react";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
import { TaskSearchField } from "./TaskSearchField";
|
|
|
|
describe("TaskSearchField IME input", () => {
|
|
it("commits the final Chinese value after composition ends", () => {
|
|
const onChange = vi.fn();
|
|
render(
|
|
<TaskSearchField
|
|
placeholder="Search files"
|
|
value=""
|
|
onChange={onChange}
|
|
/>
|
|
);
|
|
|
|
const input = screen.getByRole("searchbox");
|
|
|
|
fireEvent.compositionStart(input);
|
|
fireEvent.change(input, { target: { value: "pin" } });
|
|
expect(onChange).not.toHaveBeenCalled();
|
|
|
|
act(() => {
|
|
fireEvent.compositionEnd(input, { target: { value: "pin" } });
|
|
fireEvent.change(input, { target: { value: "拼" } });
|
|
});
|
|
|
|
expect(onChange).toHaveBeenLastCalledWith("拼");
|
|
});
|
|
});
|