import { expect } from "@effect/vitest";import { Effect } from "effect";import { scenario } from "../src/scenario";import { Browser, Target } from "../src/services";import { visit } from "../src/surfaces/browser";// A user inside the console should be able to reach the documentation without// leaving the app for the marketing site (the original friction: docs were// only discoverable from the home page). The shell renders a persistent Docs// link in the sidebar footer that opens the published docs in a new tab.scenario( "Shell · the sidebar links to the docs from inside the app", {}, Effect.gen(function* () { const target = yield* Target; const browser = yield* Browser; const identity = yield* target.newIdentity(); yield* browser.session(identity, async ({ page, step }) => { await step("Open the console", async () => { await visit(page, "/"); await page.getByText("Integrations").first().waitFor(); }); await step("The sidebar exposes a Docs link", async () => { const docs = page.getByRole("link", { name: "Docs", exact: true }); await docs.waitFor(); expect( await docs.getAttribute("href"), "Docs link points at the published documentation", ).toBe("https://executor.sh/docs"); expect(await docs.getAttribute("target"), "Docs open in a new tab").toBe("_blank"); }); }); }),);
import { expect } from "@effect/vitest";
import { Effect } from "effect";
import { scenario } from "../src/scenario";
import { Browser, Target } from "../src/services";
import { visit } from "../src/surfaces/browser";
// A user inside the console should be able to reach the documentation without
// leaving the app for the marketing site (the original friction: docs were
// only discoverable from the home page). The shell renders a persistent Docs
// link in the sidebar footer that opens the published docs in a new tab.
scenario(
"Shell · the sidebar links to the docs from inside the app",
{},
Effect.gen(function* () {
const target = yield* Target;
const browser = yield* Browser;
const identity = yield* target.newIdentity();
yield* browser.session(identity, async ({ page, step }) => {
await step("Open the console", async () => {
await visit(page, "/");
await page.getByText("Integrations").first().waitFor();
});
await step("The sidebar exposes a Docs link", async () => {
const docs = page.getByRole("link", { name: "Docs", exact: true });
await docs.waitFor();
expect(
await docs.getAttribute("href"),
"Docs link points at the published documentation",
).toBe("https://executor.sh/docs");
expect(await docs.getAttribute("target"), "Docs open in a new tab").toBe("_blank");
});
});
}),
);