Add redirect for portable-stories-playwright - #453
Conversation
✅ Deploy Preview for storybook-addon-catalog ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for storybook-frontpage ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Tip All tests passed and all changes approved!🟢 UI Tests: web/ui: 89 tests unchanged |
1 similar comment
|
Tip All tests passed and all changes approved!🟢 UI Tests: web/ui: 89 tests unchanged |
|
Important UI Tests need review – Review now🟡 UI Tests: web/frontpage: 3 changes must be accepted as baselines |
|
Important UI Tests need review – Review now🟡 UI Tests: web/frontpage: 3 changes must be accepted as baselines |
WalkthroughThe static redirect configuration now sends the removed portable-stories Playwright documentation URL to its GitHub migration notice with a permanent redirect. ChangesPortable Stories redirect
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/frontpage/lib/generateRedirects/static-redirects`:
- Line 62: Update the redirect target for portable-stories-playwright in the
static redirects configuration to reference a stable merged commit or release
tag that contains the experimental-playwright-ct-integration-removed migration
heading, instead of the moving next branch. Preserve the 301 status and existing
source path.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 904fe597-3f0d-402f-be89-6a8682193cd2
📒 Files selected for processing (1)
apps/frontpage/lib/generateRedirects/static-redirects
| /docs/testing/automated-visual-testing /docs/writing-tests/visual-testing 301 | ||
| /docs/testing/manual-testing /docs/writing-tests 301 | ||
| /docs/testing/* /docs/writing-tests 301 | ||
| /docs/api/portable-stories/portable-stories-playwright https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#experimental-playwright-ct-integration-removed 301 |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
curl -fsSL \
'https://raw.githubusercontent.com/storybookjs/storybook/refs/heads/next/MIGRATION.md' |
grep -Fxq '### Experimental Playwright CT integration removed'Repository: storybookjs/web
Length of output: 153
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '%s\n' '--- redirect source and generator ---'
git ls-files apps/frontpage/lib/generateRedirects/static-redirects apps/frontpage/scripts/generate-redirects.ts
sed -n '55,68p' apps/frontpage/lib/generateRedirects/static-redirects
sed -n '1,220p' apps/frontpage/scripts/generate-redirects.ts
printf '%s\n' '--- current upstream PR and branch state ---'
curl -fsSL 'https://api.github.com/repos/storybookjs/storybook/pulls/35650' |
jq '{state,merged_at,head:.head.ref,head_sha:.head.sha,base:.base.ref,base_sha:.base.sha}'
curl -fsSL 'https://raw.githubusercontent.com/storybookjs/storybook/refs/heads/next/MIGRATION.md' |
rg -n -i 'playwright|experimental.*ct|integration.*removed' || true
printf '%s\n' '--- upstream PR branch matching headings ---'
pr_ref="$(curl -fsSL 'https://api.github.com/repos/storybookjs/storybook/pulls/35650' | jq -r '.head.label')"
pr_owner="${pr_ref%%:*}"
pr_branch="${pr_ref#*:}"
curl -fsSL "https://raw.githubusercontent.com/${pr_owner}/storybook/${pr_branch}/MIGRATION.md" |
rg -n -i 'playwright|experimental.*ct|integration.*removed' || trueRepository: storybookjs/web
Length of output: 3002
🌐 Web query:
Storybook PR 35650 experimental Playwright CT integration removed
💡 Result:
The experimental Playwright Component Testing (CT) integration in Storybook was removed as part of the Storybook project's evolution, tracked under issue #35642 and migration notes #35644 [1][2]. It is important to note that the specific number "35650" mentioned in your query does not correspond to a Storybook pull request regarding this removal; rather, that ID is associated with unrelated pull requests in other repositories, such as home-assistant/home-assistant.io, langgenius/dify, and appsmithorg/appsmith [3][4][5]. Following the removal of the experimental integration, users are advised to refer to the official Storybook documentation on "Portable Stories" for guidance on using stories within Playwright CT environments [1][6]. While Storybook previously provided an experimental API specifically for Playwright CT, the current approach focuses on the broader Portable Stories API, which allows stories to be reused across various external testing environments [6][7]. For users transitioning away from the experimental integration, the Playwright team also provides documentation on migrating from their own experimental component testing packages (@playwright/experimental-ct-*) to their stable testing patterns [8].
Citations:
- 1: Migration notes for Playwright CT removal storybook#35644
- 2: https://oss.issuehunt.io/r/storybookjs/storybook/issues/35642
- 3: Adjust step documentation for NumberSelector home-assistant/home-assistant.io#35650
- 4: chore: increase default graph engine min workers langgenius/dify#35650
- 5: Do No merge - Testing run count appsmithorg/appsmith#35650
- 6: https://storybook.js.org/docs/api/portable-stories/portable-stories-playwright
- 7: https://storybook.js.org/blog/portable-stories-for-playwright-ct/
- 8: https://playwright.dev/docs/test-components
🌐 Web query:
site:github.com/storybookjs/storybook/issues/35644 MIGRATION.md "Experimental Playwright CT integration removed"
💡 Result:
The experimental Playwright Component Testing (CT) integration in Storybook has been removed, as noted in recent migration documentation [1]. This removal is part of the evolution of Storybook's Portable Stories feature, which was initially introduced with experimental support for Playwright CT in early 2024 [2][3][4]. Users are advised to consult the MIGRATION.md file in the Storybook repository for specific guidance regarding this change [1].
Citations:
- 1: Migration notes for Playwright CT removal storybook#35644
- 2: Portable stories: Introduce experimental API for Playwright CT+React storybook#26062
- 3: Portable stories - Set up examples for Jest, Vitest, Playwright CT storybook#26026
- 4: Portable stories: Introduce experimental Playwright CT API and Support for more renderers storybook#26063
🌐 Web query:
site:github.com/storybookjs/storybook "Experimental Playwright CT integration removed" MIGRATION.md
💡 Result:
The experimental Playwright Component Testing (CT) integration in Storybook was removed as of July 29, 2026 [1][2]. This removal includes the core Playwright CT API, such as the createPlaywrightTest function and associated CT-only types and globals [2]. Documentation and migration guidance regarding this removal can be found in the Storybook migration resources [1][3]. Users previously relying on this experimental feature are advised to refer to the specific migration notes provided in the Storybook repository to manage the transition [1]. The removal was tracked under GitHub issues #35644 (migration notes), #35645 (API removal), and #35646 (docs and cross-links removal) [1][2][3].
Citations:
- 1: Migration notes for Playwright CT removal storybook#35644
- 2: Remove core Playwright CT API storybook#35645
- 3: Remove Playwright CT docs and cross-links storybook#35646
🌐 Web query:
site:storybook.js.org/docs/api/portable-stories/portable-stories-playwright "Experimental Playwright CT integration removed"
💡 Result:
Playwright Component Testing is no longer experimental and has moved to a stable state within Playwright [1][2]. The official Playwright documentation clarifies that the previous experimental packages, such as @playwright/experimental-ct-react and @playwright/experimental-ct-vue, have been replaced [1][2]. In the current stable implementation, there are no separate experimental packages to depend on or unique configuration dialects to maintain [1][2]. Instead, component testing is integrated directly into the core framework: tests import test and expect from the standard @playwright/test package, and the mount function is now a documented, built-in fixture [1][2]. If you are migrating from the older experimental packages, you should update your project to use the stable @playwright/test implementation, as the previous "experimental" approach relied on a different pipeline that handled component bundling, configuration, and execution in a separate, isolated manner [1][2].
Citations:
Use a stable target for the redirect.
The next branch does not contain the experimental-playwright-ct-integration-removed anchor. The removal is tracked by issues #35644–#35646, not PR #35650. Use a merged commit or release tag containing the migration heading before deploying this redirect.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/frontpage/lib/generateRedirects/static-redirects` at line 62, Update the
redirect target for portable-stories-playwright in the static redirects
configuration to reference a stable merged commit or release tag that contains
the experimental-playwright-ct-integration-removed migration heading, instead of
the moving next branch. Preserve the 301 status and existing source path.
Source: MCP tools
See: storybookjs/storybook#35650