diff --git a/src/gaia/apps/webui/src/components/__tests__/SettingsPage.test.tsx b/src/gaia/apps/webui/src/components/__tests__/SettingsPage.test.tsx
index 795fb6e91..64c5c3b73 100644
--- a/src/gaia/apps/webui/src/components/__tests__/SettingsPage.test.tsx
+++ b/src/gaia/apps/webui/src/components/__tests__/SettingsPage.test.tsx
@@ -49,9 +49,10 @@ function getDynamicToolsToggle(): HTMLInputElement {
describe('SettingsPage — Dynamic Tools toggle (#1798)', () => {
it('renders the loaded value (off by default)', async () => {
render();
- const toggle = await waitFor(getDynamicToolsToggle);
- expect(toggle).not.toBeChecked();
- expect(toggle).not.toBeDisabled();
+ // Disabled-while-loading: wait for the enabled (loaded) state, not
+ // just the element, or slow runners race the settings fetch.
+ await waitFor(() => expect(getDynamicToolsToggle()).not.toBeDisabled());
+ expect(getDynamicToolsToggle()).not.toBeChecked();
});
it('reflects a persisted-on value from the server', async () => {
@@ -94,10 +95,11 @@ describe('SettingsPage — Dynamic Tools toggle (#1798)', () => {
makeSettings({ dynamic_tools: true, dynamic_tools_locked: true }),
);
render();
- const toggle = await waitFor(getDynamicToolsToggle);
+ // The toggle exists (disabled, unchecked) while settings load — wait
+ // for the loaded state, not just the element, or slow runners race.
+ await waitFor(() => expect(getDynamicToolsToggle()).toBeChecked());
- expect(toggle).toBeChecked();
- expect(toggle).toBeDisabled();
+ expect(getDynamicToolsToggle()).toBeDisabled();
expect(screen.getByText(/GAIA_DYNAMIC_TOOLS/)).toBeInTheDocument();
});