mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-05-04 01:52:00 +08:00
feat: add provider search filter (#435)
* feat: add provider search filter * feat: add provider search overlay
This commit is contained in:
@@ -235,4 +235,47 @@ describe("ProviderList Component", () => {
|
||||
"claude",
|
||||
);
|
||||
});
|
||||
|
||||
it("filters providers with the search input", () => {
|
||||
const providerAlpha = createProvider({ id: "alpha", name: "Alpha Labs" });
|
||||
const providerBeta = createProvider({ id: "beta", name: "Beta Works" });
|
||||
|
||||
useDragSortMock.mockReturnValue({
|
||||
sortedProviders: [providerAlpha, providerBeta],
|
||||
sensors: [],
|
||||
handleDragEnd: vi.fn(),
|
||||
});
|
||||
|
||||
render(
|
||||
<ProviderList
|
||||
providers={{ alpha: providerAlpha, beta: providerBeta }}
|
||||
currentProviderId=""
|
||||
appId="claude"
|
||||
onSwitch={vi.fn()}
|
||||
onEdit={vi.fn()}
|
||||
onDelete={vi.fn()}
|
||||
onDuplicate={vi.fn()}
|
||||
onOpenWebsite={vi.fn()}
|
||||
/>,
|
||||
);
|
||||
|
||||
fireEvent.keyDown(window, { key: "f", metaKey: true });
|
||||
const searchInput = screen.getByPlaceholderText(
|
||||
"Search name, notes, or URL...",
|
||||
);
|
||||
// Initially both providers are rendered
|
||||
expect(screen.getByTestId("provider-card-alpha")).toBeInTheDocument();
|
||||
expect(screen.getByTestId("provider-card-beta")).toBeInTheDocument();
|
||||
|
||||
fireEvent.change(searchInput, { target: { value: "beta" } });
|
||||
expect(screen.queryByTestId("provider-card-alpha")).not.toBeInTheDocument();
|
||||
expect(screen.getByTestId("provider-card-beta")).toBeInTheDocument();
|
||||
|
||||
fireEvent.change(searchInput, { target: { value: "gamma" } });
|
||||
expect(screen.queryByTestId("provider-card-alpha")).not.toBeInTheDocument();
|
||||
expect(screen.queryByTestId("provider-card-beta")).not.toBeInTheDocument();
|
||||
expect(
|
||||
screen.getByText("No providers match your search."),
|
||||
).toBeInTheDocument();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user