mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-06-22 14:13:49 +08:00
c877f0551e
新增SidebarEntry类型定义与侧边栏配置加载逻辑,支持从服务器拉取sidebar-config.json动态配置侧边栏入口 替换原分类侧边栏为可配置样式,新增CategoryBar分类选择组件,更新品牌色为苹果风格蓝色 重构侧边栏状态管理,拆分activeTab与选中分类逻辑,新增侧边栏入口计数统计 添加SIDEBAR_CONFIG.md文档说明配置格式与使用方法,更新测试用例与组件props
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { render, screen } from "@testing-library/vue";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
import AppSidebar from "@/components/AppSidebar.vue";
|
|
|
|
const renderSidebar = (
|
|
overrides: Partial<InstanceType<typeof AppSidebar>["$props"]> = {},
|
|
) => {
|
|
return render(AppSidebar, {
|
|
props: {
|
|
activeTab: "all",
|
|
categoryCounts: { all: 0 },
|
|
themeMode: "auto",
|
|
storeFilter: "both",
|
|
sparkAvailable: true,
|
|
apmAvailable: true,
|
|
sidebarEntries: [],
|
|
entryCounts: {},
|
|
...overrides,
|
|
},
|
|
});
|
|
};
|
|
|
|
describe("AppSidebar", () => {
|
|
it("shows management and update entries when at least one source is usable", () => {
|
|
renderSidebar({ sparkAvailable: true, apmAvailable: false });
|
|
|
|
expect(screen.getByText("应用管理")).toBeTruthy();
|
|
expect(screen.getByText("软件更新")).toBeTruthy();
|
|
});
|
|
|
|
it("hides management and update entries when both sources are unavailable", () => {
|
|
renderSidebar({ sparkAvailable: false, apmAvailable: false });
|
|
|
|
expect(screen.queryByText("应用管理")).toBeNull();
|
|
expect(screen.queryByText("软件更新")).toBeNull();
|
|
});
|
|
});
|