From 4e1e02a2437cca2f617db3b0f871c4752bebbb39 Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Sat, 29 Aug 2026 17:38:20 +0100 Subject: [PATCH] Keep PBS history open across refreshes Change-source: pulse-maintainer --- .../proxmox/ProxmoxBackupServersTable.tsx | 6 +- .../ProxmoxBackupServersTable.drawer.test.tsx | 56 ++++++++++++++----- 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/frontend-modern/src/features/proxmox/ProxmoxBackupServersTable.tsx b/frontend-modern/src/features/proxmox/ProxmoxBackupServersTable.tsx index f486ae8ff..73a90bbe7 100644 --- a/frontend-modern/src/features/proxmox/ProxmoxBackupServersTable.tsx +++ b/frontend-modern/src/features/proxmox/ProxmoxBackupServersTable.tsx @@ -342,7 +342,11 @@ export function ProxmoxBackupServersTable(props: { } body={ <> - + row.key} + estimatedRowHeight={32} + > {(row) => { const pct = () => (row.datastore ? usagePercent(row.datastore) : undefined); const rowIdentity = { id: row.key }; diff --git a/frontend-modern/src/features/proxmox/__tests__/ProxmoxBackupServersTable.drawer.test.tsx b/frontend-modern/src/features/proxmox/__tests__/ProxmoxBackupServersTable.drawer.test.tsx index 31d6e1b8f..08614dd45 100644 --- a/frontend-modern/src/features/proxmox/__tests__/ProxmoxBackupServersTable.drawer.test.tsx +++ b/frontend-modern/src/features/proxmox/__tests__/ProxmoxBackupServersTable.drawer.test.tsx @@ -1,27 +1,33 @@ -import { fireEvent, render, screen } from '@solidjs/testing-library'; -import { describe, expect, it, vi } from 'vitest'; +import { fireEvent, render, screen, waitFor } from '@solidjs/testing-library'; +import { createSignal } from 'solid-js'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import type { Resource } from '@/types/resource'; import { ProxmoxBackupServersTable } from '../ProxmoxBackupServersTable'; +const resourceDetailDrawerMount = vi.hoisted(() => vi.fn()); + vi.mock('@/components/Infrastructure/ResourceDetailDrawer', () => ({ ResourceDetailDrawer: (props: { resource: Resource; initialShowHostDetails?: boolean; onClose?: () => void; - }) => ( -
- -
- ), + }) => { + resourceDetailDrawerMount(props.resource.id); + return ( +
+ +
+ ); + }, })); const makePbsResource = (): Resource => @@ -56,6 +62,26 @@ const makePbsResource = (): Resource => }) as Resource; describe('ProxmoxBackupServersTable details', () => { + beforeEach(() => { + resourceDetailDrawerMount.mockClear(); + }); + + it('keeps the open detail drawer mounted across refreshed PBS snapshots', async () => { + const [servers, setServers] = createSignal([makePbsResource()]); + render(() => ); + + fireEvent.click(screen.getByRole('button', { name: 'Expand details for pbs-main' })); + expect(resourceDetailDrawerMount).toHaveBeenCalledTimes(1); + + const refreshed = makePbsResource(); + refreshed.pbs = { ...refreshed.pbs!, version: '3.2.2' }; + setServers([refreshed]); + + await waitFor(() => expect(screen.getByText('3.2.2')).toBeInTheDocument()); + expect(resourceDetailDrawerMount).toHaveBeenCalledTimes(1); + expect(screen.getByTestId('pbs-resource-detail')).toBeInTheDocument(); + }); + it('opens the canonical resource drawer with merged host details expanded', () => { render(() => );