mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-06-24 23:23:49 +08:00
fix(update-center): load aptss updates reliably
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
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 updateCenterOpen = vi.fn();
|
||||
|
||||
vi.mock("axios", () => {
|
||||
const get = vi.fn(async () => ({ data: [] }));
|
||||
|
||||
return {
|
||||
default: {
|
||||
create: () => ({ get }),
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
describe("App update center runtime", () => {
|
||||
beforeEach(() => {
|
||||
invoke.mockReset();
|
||||
updateCenterOpen.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(),
|
||||
});
|
||||
|
||||
Object.assign(window, {
|
||||
updateCenter: {
|
||||
open: updateCenterOpen.mockResolvedValue({
|
||||
items: [],
|
||||
tasks: [],
|
||||
warnings: [],
|
||||
hasRunningTasks: false,
|
||||
}),
|
||||
refresh: vi.fn(),
|
||||
ignore: vi.fn(),
|
||||
unignore: vi.fn(),
|
||||
start: vi.fn(),
|
||||
cancel: vi.fn(),
|
||||
getState: vi.fn(),
|
||||
onState: vi.fn(),
|
||||
offState: vi.fn(),
|
||||
},
|
||||
});
|
||||
|
||||
window.apm_store.arch = "amd64";
|
||||
|
||||
vi.stubGlobal(
|
||||
"matchMedia",
|
||||
vi.fn(() => ({
|
||||
matches: false,
|
||||
addEventListener: vi.fn(),
|
||||
removeEventListener: vi.fn(),
|
||||
})),
|
||||
);
|
||||
});
|
||||
|
||||
it("opens update center with an empty snapshot without throwing", async () => {
|
||||
render(App);
|
||||
|
||||
await fireEvent.click(await screen.findByText("软件更新"));
|
||||
|
||||
expect(updateCenterOpen).toHaveBeenCalledWith("both");
|
||||
expect(await screen.findByText("暂无可展示的更新任务")).toBeTruthy();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user