=
void handleCopy(text)}
- />
+ <>
+
+ void handleCopy(text)}
+ />
+ >
}
>
diff --git a/frontend-modern/src/components/Settings/__tests__/ConnectionsExplainer.test.tsx b/frontend-modern/src/components/Settings/__tests__/ConnectionsExplainer.test.tsx
new file mode 100644
index 000000000..5ec4af30c
--- /dev/null
+++ b/frontend-modern/src/components/Settings/__tests__/ConnectionsExplainer.test.tsx
@@ -0,0 +1,39 @@
+import { cleanup, fireEvent, render, screen } from '@solidjs/testing-library';
+import { afterEach, beforeEach, describe, expect, it } from 'vitest';
+import { ConnectionsExplainer } from '../ConnectionsExplainer';
+
+const DISMISS_KEY = 'pulse.infrastructure.explainer.dismissed.v1';
+
+describe('ConnectionsExplainer', () => {
+ beforeEach(() => {
+ window.localStorage.clear();
+ });
+
+ afterEach(() => {
+ cleanup();
+ window.localStorage.clear();
+ });
+
+ it('names both ingestion modes with their branded labels', () => {
+ render(() => );
+
+ expect(screen.getByText('Platform API')).toBeInTheDocument();
+ expect(screen.getByText('Pulse Unified Agent')).toBeInTheDocument();
+ });
+
+ it('hides itself and persists dismissal to localStorage when closed', () => {
+ const { container } = render(() => );
+
+ fireEvent.click(screen.getByRole('button', { name: 'Dismiss' }));
+
+ expect(container.querySelector('section')).toBeNull();
+ expect(window.localStorage.getItem(DISMISS_KEY)).toBe('1');
+ });
+
+ it('stays dismissed across remounts once localStorage records it', () => {
+ window.localStorage.setItem(DISMISS_KEY, '1');
+ const { container } = render(() => );
+
+ expect(container.querySelector('section')).toBeNull();
+ });
+});
diff --git a/frontend-modern/src/components/Settings/useConnectionsLedger.ts b/frontend-modern/src/components/Settings/useConnectionsLedger.ts
index e6756b771..6d78aa78d 100644
--- a/frontend-modern/src/components/Settings/useConnectionsLedger.ts
+++ b/frontend-modern/src/components/Settings/useConnectionsLedger.ts
@@ -15,7 +15,7 @@ export const CONNECTION_TYPE_LABELS: Record = {
pmg: 'Proxmox Mail Gateway',
vmware: 'VMware vCenter',
truenas: 'TrueNAS',
- agent: 'Pulse agent',
+ agent: 'Pulse Unified Agent',
docker: 'Docker',
kubernetes: 'Kubernetes',
};