This commit is contained in:
EthanHealy01
2026-05-08 13:50:36 +01:00
parent e65775319e
commit 2e4bfc3a5b
6 changed files with 15 additions and 7 deletions
@@ -7899,7 +7899,7 @@ viewerMode = "Switch to the file editor to add multiple files."
[toolPanel]
allTools = "All tools"
alpha = "Alpha"
backToTools = "Back to all tools"
backToTools = "Back to tools"
collapse = "Collapse panel"
comingSoon = "Coming soon:"
expand = "Expand panel"
@@ -357,7 +357,7 @@ export default function WorkbenchBar({
data-tour="workbench-bar"
>
{/* Left: View switcher */}
<div className="workbench-bar-views">
<div className="workbench-bar-views" data-tour="view-switcher">
{hasFiles &&
viewOptions.map((opt) => (
<button
@@ -240,10 +240,10 @@ export default function ToolPanel() {
radius={0}
leftSection={<ArrowBackIcon sx={{ fontSize: "0.9rem" }} />}
onClick={handleBackToTools}
aria-label={t("toolPanel.backToTools", "Back to all tools")}
aria-label={t("toolPanel.backToTools", "Back to tools")}
styles={{ root: { justifyContent: "flex-start" } }}
>
{t("toolPanel.backToTools", "Back to all tools")}
{t("toolPanel.backToTools", "Back to tools")}
</Button>
</div>
<div className="flex-1 min-h-0 overflow-hidden">
@@ -230,6 +230,11 @@ export async function mockAppApis(
route.fulfill({ json: {} }),
);
// License info — stubbed so admin settings doesn't log proxy errors
await page.route("**/api/v1/admin/license-info", (route: Route) =>
route.fulfill({ json: { licenseType: "FREE", valid: true, maxUsers: 5 } }),
);
// Settings sections touched by the settings page
await page.route("**/api/v1/admin/settings", (route: Route) =>
route.fulfill({ json: {} }),
@@ -82,8 +82,7 @@ test.describe("11. Automation Page", () => {
test.describe("11.1 Automation - Suggested Workflows", () => {
test("should display saved and suggested workflows", async ({ page }) => {
// Step 1: Verify the Automation Selection header is present
const automateLink = page.locator('a[href="/automate"]').first();
await expect(automateLink).toBeVisible();
await expect(page).toHaveURL(/\/automate/);
await expect(
page.getByText(/Automation Selection/i).first(),
@@ -204,8 +204,11 @@ test.describe("15.7 Tour selectors — admin modal nav items", () => {
const navItem = page
.locator(`[data-tour="admin-${section}-nav"]`)
.first();
// Use waitFor attached (not isVisible) because admin nav items live in a
// scrollable sidebar and may be below the visible fold even when rendered.
const isPresent = await navItem
.isVisible({ timeout: 5_000 })
.waitFor({ state: "attached", timeout: 5_000 })
.then(() => true)
.catch(() => false);
if (!isPresent) {
test.skip(
@@ -214,6 +217,7 @@ test.describe("15.7 Tour selectors — admin modal nav items", () => {
);
return;
}
await navItem.scrollIntoViewIfNeeded();
await expect(navItem).toBeVisible();
});
}