Skip to content

test(e2e): expand Playwright coverage for the theme switcher - #86

Open
lokesh-bruno wants to merge 3 commits into
usebruno:release/v0.4.0from
lokesh-bruno:theme_coverage
Open

lokesh-bruno wants to merge 3 commits into
usebruno:release/v0.4.0from
lokesh-bruno:theme_coverage

Conversation

@lokesh-bruno

Copy link
Copy Markdown

Ref BRU-4604

Description

Adds E2E coverage for the Collection Docs light/dark theme switcher so the chosen theme is applied without a refresh and remembered across reload, navigation, and a new tab.

The coverage includes:

  • Following the OS theme on first load (light or dark).
  • Switching to dark and back to light without a page refresh.
  • Keeping the chosen theme after a browser refresh.
  • Keeping the chosen theme while moving between Overview, Environments, and a request page.
  • Keeping the chosen theme when the doc is opened in a new tab.
  • Keeping an explicit light choice after reload even if the OS prefers dark.

@changeset-bot

changeset-bot Bot commented Sep 21, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 1e6f20a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@usebruno/api-docs Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@lokesh-bruno lokesh-bruno changed the title Theme test cases coverage test(e2e): expand Playwright coverage for the theme switcher Sep 21, 2026
Comment thread packages/bruno-api-docs/e2e/tests/theming/theme-toggle.spec.ts Outdated
Expanded Playwright coverage for the theme switcher in e2e tests.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this one passes even when saving the theme is broken. try commenting out the localStorage.setItem in theme.ts and run the spec and then reload / new tab / explicit light all failed but this stayed green.

Also moving between pages never reloads so the theme is just kept in memory.

await reopened.goto('/');

await expect(reopened.locator('html')).toHaveAttribute('data-theme', 'dark');
await expect(reopened.getByTestId('theme-toggle')).toHaveAccessibleName('Switch to light theme');

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this skips the page object because it is tied to the first page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants