-
-
Notifications
You must be signed in to change notification settings - Fork 9.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Core: Add unified UI Testing Module #29241
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…testprovider-backend
…est-testprovider-backend Addon-Test: Implement Addon Test TestProvider Backend
…rybook into kasper/fix-sandboxes-next
…nflict Addon Test: Error when addon interactions exists
Might be related that in Angular RC all components/directives/pipes are standalone per default
…unified-ui-testing
…unified-ui-testing
…teractions-conflict Revert "Addon Test: Error when addon interactions exists"
This reverts commit eecd7b6.
…unified-ui-testing
valentinpalkovic
force-pushed
the
unified-ui-testing
branch
from
October 24, 2024 07:27
3c34bd5
to
fa42817
Compare
valentinpalkovic
force-pushed
the
unified-ui-testing
branch
from
October 24, 2024 08:27
b0b42a0
to
0739b0e
Compare
8 tasks
kasperpeulen
added
needs qa
Indicates that this needs manual QA during the upcoming minor/major release
and removed
needs qa
Indicates that this needs manual QA during the upcoming minor/major release
labels
Oct 24, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #29088
This PR introduces a new UI element to the Storybook sidebar called the "Testing Module", and provides a set of APIs which allow addons to register themselves as a "test provider".
The testing module lists all registered test providers and provides the capability to trigger a test run or toggle watch mode for each test provider, depending on what the provider supports.
Here's a basic example for how to register a test provider:
Test providers can listen for these events on the channel:
TESTING_MODULE_RUN_REQUEST
TESTING_MODULE_RUN_ALL_REQUEST
TESTING_MODULE_CANCEL_TEST_RUN_REQUEST
TESTING_MODULE_WATCH_MODE_REQUEST
Test providers should emit these events to update the Testing Module state:
TESTING_MODULE_CRASH_REPORT
TESTING_MODULE_PROGRESS_REPORT
TESTING_MODULE_CANCEL_TEST_RUN_RESPONSE
For a complete example, check out the Component Tests addon.
Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
Projects to test:
For each project, make sure you are using the right dependency versions:
To QA:
npx storybook@<version> add @storybook/experimental-addon-test@<version>
Documentation
MIGRATION.MD
Checklist for Maintainers
When this PR is ready for testing, make sure to add
ci:normal
,ci:merged
orci:daily
GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found incode/lib/cli/src/sandbox-templates.ts
Make sure this PR contains one of the labels below:
Available labels
bug
: Internal changes that fixes incorrect behavior.maintenance
: User-facing maintenance tasks.dependencies
: Upgrading (sometimes downgrading) dependencies.build
: Internal-facing build tooling & test updates. Will not show up in release changelog.cleanup
: Minor cleanup style change. Will not show up in release changelog.documentation
: Documentation only changes. Will not show up in release changelog.feature request
: Introducing a new feature.BREAKING CHANGE
: Changes that break compatibility in some way with current major version.other
: Changes that don't fit in the above categories.🦋 Canary release
This pull request has been released as version
0.0.0-pr-29241-sha-f30996d6
. Try it out in a new sandbox by runningnpx storybook@0.0.0-pr-29241-sha-f30996d6 sandbox
or in an existing project withnpx storybook@0.0.0-pr-29241-sha-f30996d6 upgrade
.More information
0.0.0-pr-29241-sha-f30996d6
unified-ui-testing
f30996d6
1729688474
)To request a new release of this pull request, mention the
@storybookjs/core
team.core team members can create a new canary release here or locally with
gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=29241
Greptile Summary
This PR introduces a unified UI testing module to Storybook, focusing on integrating Vitest for component testing. Here are the key changes:
@storybook/experimental-addon-test
package with Vitest integrationTestManager
andVitestManager
classes for managing test executionKey points to note: