From eb605031e6e9ff3de45ee31afb9fb2957a855ac7 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Wed, 4 Nov 2026 10:22:31 +0000 Subject: [PATCH] test(ui): mount the settings harness inside a router The built-in tools section reads the location to scroll to a row, so a render without a router threw. Assisted-by: Claude:claude-sonnet-5-5 --- core/http/react-ui/tests/unit/hostsettings.test.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/http/react-ui/tests/unit/hostsettings.test.mjs b/core/http/react-ui/tests/unit/hostsettings.test.mjs index 40afca9a93..a8828d0c16 100644 --- a/core/http/react-ui/tests/unit/hostsettings.test.mjs +++ b/core/http/react-ui/tests/unit/hostsettings.test.mjs @@ -4,6 +4,7 @@ import assert from 'node:assert/strict' import { JSDOM } from 'jsdom' import React, { act } from 'react' import { createServer } from 'vite' +import { MemoryRouter } from 'react-router-dom' import { createHostSettingsClient } from '../../src/utils/hostSettingsClient.js' import { createAddonsApi } from '../../src/utils/addonsApi.js' import { useHostSettings } from '../../src/hooks/useHostSettings.js' @@ -272,7 +273,7 @@ async function providerRender() { const { default: Upgrades } = await server.ssrLoadModule('/src/components/settings/AddonUpgradeSettings.jsx') const { default: ConnectorFiles } = await server.ssrLoadModule('/src/components/settings/ConnectorFilesSettings.jsx') const root = createRoot(document.getElementById('root')) - return { Form, Skills, Upgrades, ConnectorFiles, async render(Component, props) { await act(async () => root.render(React.createElement(Component, props))) }, async close() { await act(async () => root.unmount()); await server.close() } } + return { Form, Skills, Upgrades, ConnectorFiles, async render(Component, props) { await act(async () => root.render(React.createElement(MemoryRouter, null, React.createElement(Component, props)))) }, async close() { await act(async () => root.unmount()); await server.close() } } } const buttonNamed = text => [...document.querySelectorAll('button')].find(b => b.textContent === text) const skillSwitch = name => document.querySelector(`[data-testid="app-skill-${name}-switch"]`)