From 9141005e6bd68e83d0babbe3d966de0d685f394a Mon Sep 17 00:00:00 2001 From: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:20:04 -0300 Subject: [PATCH] fix: make settings nav not enter history (#9376) * remove unused location store * make sidebar component replace route in order for back button to go back to previous page before settings * added test to back button functionality * [autofix.ci] apply automated fixes --------- Co-authored-by: Mike Fortman Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../core/sidebarComponent/index.tsx | 2 +- src/frontend/src/stores/locationStore.ts | 21 --------- .../extended/features/userSettings.spec.ts | 45 +++++++++++++++++++ 3 files changed, 46 insertions(+), 22 deletions(-) delete mode 100644 src/frontend/src/stores/locationStore.ts diff --git a/src/frontend/src/components/core/sidebarComponent/index.tsx b/src/frontend/src/components/core/sidebarComponent/index.tsx index 9feae5c7f..1ba31000a 100644 --- a/src/frontend/src/components/core/sidebarComponent/index.tsx +++ b/src/frontend/src/components/core/sidebarComponent/index.tsx @@ -34,7 +34,7 @@ const SideBarButtonsComponent = ({ items }: SideBarButtonsComponentProps) => { {items.map((item, index) => ( - + ((set, get) => ({ - routeHistory: [], - setRouteHistory: (location) => { - const routeHistoryArray = get().routeHistory; - routeHistoryArray.push(location); - - if (routeHistoryArray?.length > 100) { - routeHistoryArray.shift(); - set({ - routeHistory: routeHistoryArray, - }); - } - - set({ - routeHistory: routeHistoryArray, - }); - }, -})); diff --git a/src/frontend/tests/extended/features/userSettings.spec.ts b/src/frontend/tests/extended/features/userSettings.spec.ts index a7cb26656..a4df73cb3 100644 --- a/src/frontend/tests/extended/features/userSettings.spec.ts +++ b/src/frontend/tests/extended/features/userSettings.spec.ts @@ -1,4 +1,5 @@ import { expect, test } from "@playwright/test"; +import { awaitBootstrapTest } from "../../utils/await-bootstrap-test"; test.beforeAll(async () => { await new Promise((resolve) => setTimeout(resolve, 7000)); @@ -200,3 +201,47 @@ test( await page.getByText(randomName).isVisible(); }, ); + +test( + "should navigate back to flow from global variables", + { tag: ["@release", "@workspace"] }, + async ({ page }) => { + await awaitBootstrapTest(page); + + await page.getByTestId("side_nav_options_all-templates").click(); + await page.getByRole("heading", { name: "Basic Prompting" }).click(); + await page.waitForSelector('[data-testid="fit_view"]', { + timeout: 100000, + }); + // Now navigate to user settings + await page.getByTestId("user-profile-settings").click(); + await page.getByTestId("menu_settings_button").click(); + + // Verify we're on the settings page + await expect(page.getByText("General").nth(2)).toBeVisible({ + timeout: 4000, + }); + + // Navigate to Global Variables + await page.getByText("Global Variables").click(); + await page.getByText("Global Variables").nth(2); + await page + .getByText("Global Variables", { exact: true }) + .nth(1) + .isVisible(); + + // Click the back button - this should take us back to the flow, not to the main settings page + await page.getByTestId("back_page_button").click(); + + // Verify we're back on the flow page, not the settings main page + await page.waitForSelector('[data-testid="sidebar-search-input"]', { + timeout: 5000, + }); + + // Additional verification that we're on the flow page + expect(page.url()).toMatch(/\/flow\//); + + // Verify we can see flow-specific elements + await expect(page.getByTestId("sidebar-search-input")).toBeVisible(); + }, +);