fix: proxmox stats tab reads its switch from plugin host settings

This commit is contained in:
LukeGus committed 2026-09-30 17:48:37 -05:00
1 parent ba05b6a610
commit 69b1b9805b
2 files changed
+55 -5

No files matched your search

@@ -42,8 +42,12 @@ interface HostConfig {
name: string;
ip: string;
username: string;
enableProxmoxStats?: boolean;
proxmoxStatsConfig?: string | ProxmoxStatsConfig | null;
pluginSettings?: {
proxmox?: {
enableProxmoxStats?: boolean;
proxmoxStatsConfig?: string | ProxmoxStatsConfig | null;
};
};
authType?: string;
port?: number;
[key: string]: unknown;
@@ -115,9 +119,10 @@ function ProxmoxStatsInner({
null,
);
const proxmoxSettings = currentHostConfig?.pluginSettings?.proxmox;
const statsConfig = React.useMemo(
() => parseProxmoxStatsConfig(currentHostConfig?.proxmoxStatsConfig),
[currentHostConfig?.proxmoxStatsConfig],
() => parseProxmoxStatsConfig(proxmoxSettings?.proxmoxStatsConfig),
[proxmoxSettings?.proxmoxStatsConfig],
);
React.useEffect(() => {
@@ -162,7 +167,7 @@ function ProxmoxStatsInner({
});
}, []);
const notEnabled = currentHostConfig?.enableProxmoxStats !== true;
const notEnabled = proxmoxSettings?.enableProxmoxStats !== true;
const stopPollingRef = React.useRef<(() => void) | null>(null);
const fetchSnapshot = React.useCallback(async (): Promise<void> => {
@@ -0,0 +1,45 @@
import { cleanup, render, screen } from "@testing-library/react";
import "@testing-library/jest-dom/vitest";
import { afterEach, describe, expect, it, vi } from "vitest";
vi.mock("@termix/plugin-sdk/frontend", async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
useTranslation: () => ({ t: (key: string) => key, language: "en" }),
usePluginApi: () => ({}),
useHosts: () => ({ hosts: [] }),
}));
vi.mock("../../../src/frontend/stats/proxmox-stats-api", () => ({
createProxmoxStatsApi: () => ({
startPolling: () => new Promise(() => {}),
stopPolling: () => Promise.resolve(),
getSnapshot: () => new Promise(() => {}),
sendHeartbeat: () => Promise.resolve(),
}),
}));
import { ProxmoxStatsTab } from "../../../src/frontend/stats/ProxmoxStatsTab";
const host = (proxmox: Record<string, unknown>) => ({
id: 1,
name: "pve",
ip: "10.0.0.1",
username: "root",
pluginSettings: { proxmox },
});
afterEach(cleanup);
describe("ProxmoxStatsTab", () => {
it("reads the stats switch from the plugin host settings", () => {
render(<ProxmoxStatsTab hostConfig={host({ enableProxmoxStats: true })} />);
expect(
screen.queryByText("proxmoxStats.noHostSelected"),
).not.toBeInTheDocument();
});
it("shows the empty state when stats are off for the host", () => {
render(<ProxmoxStatsTab hostConfig={host({})} />);
expect(screen.getByText("proxmoxStats.noHostSelected")).toBeInTheDocument();
});
});