after audit
This commit is contained in:
parent
e8e20637e6
commit
a5165dc3ba
80 changed files with 8489 additions and 7302 deletions
|
|
@ -0,0 +1,72 @@
|
|||
// @vitest-environment happy-dom
|
||||
import { describe, expect, it, vi, beforeEach } from "vitest";
|
||||
import { mount, flushPromises } from "@vue/test-utils";
|
||||
import AdminIntegritySection from "./AdminIntegritySection.vue";
|
||||
|
||||
vi.mock("@/features/admin_dbops", () => ({
|
||||
getAdminDbIntegrityReport: vi.fn(),
|
||||
}));
|
||||
|
||||
import { getAdminDbIntegrityReport, type AdminDbIntegrityReport } from "@/features/admin_dbops";
|
||||
|
||||
const mockedGetReport = vi.mocked(getAdminDbIntegrityReport);
|
||||
|
||||
function buildReport(overrides: Partial<AdminDbIntegrityReport> = {}): AdminDbIntegrityReport {
|
||||
return {
|
||||
status: "ok",
|
||||
warnings: [],
|
||||
failures: [],
|
||||
checked_at: "2025-01-15T12:00:00Z",
|
||||
checks: [
|
||||
{ name: "orphaned_publications", count: 0, severity: "metric", message: "No orphaned publications found." },
|
||||
],
|
||||
...overrides,
|
||||
};
|
||||
}
|
||||
|
||||
describe("AdminIntegritySection", () => {
|
||||
beforeEach(() => {
|
||||
mockedGetReport.mockReset();
|
||||
});
|
||||
|
||||
it("renders the section heading", () => {
|
||||
const wrapper = mount(AdminIntegritySection);
|
||||
expect(wrapper.text()).toContain("Integrity Report");
|
||||
});
|
||||
|
||||
it("exposes load function that fetches integrity report", async () => {
|
||||
mockedGetReport.mockResolvedValueOnce(buildReport());
|
||||
const wrapper = mount(AdminIntegritySection);
|
||||
const vm = wrapper.vm as unknown as { load: () => Promise<void> };
|
||||
await vm.load();
|
||||
await flushPromises();
|
||||
expect(mockedGetReport).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("renders check results after loading", async () => {
|
||||
mockedGetReport.mockResolvedValueOnce(buildReport());
|
||||
const wrapper = mount(AdminIntegritySection);
|
||||
const vm = wrapper.vm as unknown as { load: () => Promise<void> };
|
||||
await vm.load();
|
||||
await flushPromises();
|
||||
expect(wrapper.text()).toContain("orphaned_publications");
|
||||
});
|
||||
|
||||
it("displays warning count when present", async () => {
|
||||
mockedGetReport.mockResolvedValueOnce(buildReport({ warnings: ["w1", "w2", "w3"] }));
|
||||
const wrapper = mount(AdminIntegritySection);
|
||||
const vm = wrapper.vm as unknown as { load: () => Promise<void> };
|
||||
await vm.load();
|
||||
await flushPromises();
|
||||
expect(wrapper.text()).toContain("3");
|
||||
});
|
||||
|
||||
it("renders status badge", async () => {
|
||||
mockedGetReport.mockResolvedValueOnce(buildReport({ status: "failed" }));
|
||||
const wrapper = mount(AdminIntegritySection);
|
||||
const vm = wrapper.vm as unknown as { load: () => Promise<void> };
|
||||
await vm.load();
|
||||
await flushPromises();
|
||||
expect(wrapper.text()).toContain("failed");
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue