mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-06-22 14:13:49 +08:00
101 lines
2.4 KiB
TypeScript
101 lines
2.4 KiB
TypeScript
import { fireEvent, render, screen } from "@testing-library/vue";
|
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
import App from "@/App.vue";
|
|
|
|
const invoke = vi.fn();
|
|
const open = vi.fn();
|
|
|
|
vi.mock("axios", () => {
|
|
const get = vi.fn(async (url: string) => {
|
|
if (url.includes("categories.json")) {
|
|
return { data: {} };
|
|
}
|
|
|
|
if (url.includes("homelinks.json") || url.includes("homelist.json")) {
|
|
return { data: [] };
|
|
}
|
|
|
|
if (url.includes("applist.json")) {
|
|
return { data: [] };
|
|
}
|
|
|
|
return { data: [] };
|
|
});
|
|
|
|
return {
|
|
default: {
|
|
create: () => ({ get }),
|
|
},
|
|
};
|
|
});
|
|
|
|
vi.mock("@/modules/updateCenter", () => ({
|
|
createUpdateCenterStore: () => ({
|
|
isOpen: { value: false },
|
|
showCloseConfirm: { value: false },
|
|
showMigrationConfirm: { value: false },
|
|
searchQuery: { value: "" },
|
|
selectedTaskKeys: { value: new Set<string>() },
|
|
snapshot: {
|
|
value: { items: [], tasks: [], warnings: [], hasRunningTasks: false },
|
|
},
|
|
filteredItems: { value: [] },
|
|
allSelected: { value: false },
|
|
someSelected: { value: false },
|
|
bind: vi.fn(),
|
|
unbind: vi.fn(),
|
|
open,
|
|
refresh: vi.fn(),
|
|
ignoreItem: vi.fn(),
|
|
unignoreItem: vi.fn(),
|
|
toggleSelection: vi.fn(),
|
|
toggleSelectAll: vi.fn(),
|
|
getSelectedItems: vi.fn(() => []),
|
|
closeNow: vi.fn(),
|
|
startSelected: vi.fn(),
|
|
requestClose: vi.fn(),
|
|
}),
|
|
}));
|
|
|
|
describe("App update center entry", () => {
|
|
beforeEach(() => {
|
|
invoke.mockReset();
|
|
open.mockReset();
|
|
|
|
invoke.mockImplementation(async (channel: string) => {
|
|
if (channel === "get-store-filter") return "both";
|
|
if (channel === "check-spark-available") return true;
|
|
if (channel === "check-apm-available") return true;
|
|
if (channel === "get-app-version") return "5.0.0";
|
|
return [];
|
|
});
|
|
|
|
Object.assign(window.ipcRenderer, {
|
|
invoke,
|
|
on: vi.fn(),
|
|
off: vi.fn(),
|
|
send: vi.fn(),
|
|
});
|
|
|
|
window.apm_store.arch = "amd64";
|
|
|
|
vi.stubGlobal(
|
|
"matchMedia",
|
|
vi.fn(() => ({
|
|
matches: false,
|
|
addEventListener: vi.fn(),
|
|
removeEventListener: vi.fn(),
|
|
})),
|
|
);
|
|
});
|
|
|
|
it("opens update center when clicking the sidebar action", async () => {
|
|
render(App);
|
|
|
|
await fireEvent.click(await screen.findByText("软件更新"));
|
|
|
|
expect(open).toHaveBeenCalledWith("both");
|
|
});
|
|
});
|