mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-24 12:44:18 +08:00
ec8afd63ea
Remove the category-based grouping logic from ProviderPresetSelector, letting the array position in each preset config file be the single source of truth for display order. Move partner presets (PatewayAI, 火山Agentplan, BytePlus, DouBaoSeed) right after Shengsuanyun across all 6 config files so they appear earlier in the UI.
72 lines
2.2 KiB
TypeScript
72 lines
2.2 KiB
TypeScript
import { render, screen } from "@testing-library/react";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
import { useForm } from "react-hook-form";
|
|
import { Form } from "@/components/ui/form";
|
|
import { ProviderPresetSelector } from "@/components/providers/forms/ProviderPresetSelector";
|
|
|
|
describe("ProviderPresetSelector", () => {
|
|
it("按传入的预设数组顺序渲染,不按分类重新排序", () => {
|
|
const Wrapper = () => {
|
|
const form = useForm();
|
|
|
|
return (
|
|
<Form {...form}>
|
|
<ProviderPresetSelector
|
|
selectedPresetId="custom"
|
|
presetEntries={[
|
|
{
|
|
id: "preset-0",
|
|
preset: {
|
|
name: "First",
|
|
websiteUrl: "https://first.example.com",
|
|
settingsConfig: {},
|
|
category: "third_party",
|
|
},
|
|
},
|
|
{
|
|
id: "preset-1",
|
|
preset: {
|
|
name: "Second",
|
|
websiteUrl: "https://second.example.com",
|
|
settingsConfig: {},
|
|
category: "official",
|
|
},
|
|
},
|
|
{
|
|
id: "preset-2",
|
|
preset: {
|
|
name: "Third",
|
|
websiteUrl: "https://third.example.com",
|
|
settingsConfig: {},
|
|
category: "aggregator",
|
|
},
|
|
},
|
|
{
|
|
id: "preset-3",
|
|
preset: {
|
|
name: "Fourth",
|
|
websiteUrl: "https://fourth.example.com",
|
|
settingsConfig: {},
|
|
category: "official",
|
|
},
|
|
},
|
|
]}
|
|
presetCategoryLabels={{
|
|
official: "官方",
|
|
aggregator: "聚合服务",
|
|
third_party: "第三方",
|
|
}}
|
|
onPresetChange={vi.fn()}
|
|
/>
|
|
</Form>
|
|
);
|
|
};
|
|
|
|
render(<Wrapper />);
|
|
|
|
expect(
|
|
screen.getAllByRole("button").map((button) => button.textContent),
|
|
).toEqual(["providerPreset.custom", "First", "Second", "Third", "Fourth"]);
|
|
});
|
|
});
|