-
-
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
SvelteKit: Add experimental page and navigation mocking #24795
Conversation
I really had hopes for this last commit but apparently e2e tests are failing now. I've explored a bit figured out that the problem is that now trying to go to Example/Button (which is what e2e tests does) and clicking the button doesn't trigger the action (how it normally does and what e2e tests are looking for). With a bit more exploration i figured out that it all boils down to this lines of code export const previewAnnotations: StorybookConfig['previewAnnotations'] = (entry = []) => [
...entry,
require.resolve('@storybook/sveltekit/preview'),
]; that i've added to the export const parameters = {
actions: { argTypesRegex: '^on[A-Z].*' },
}, without much success. I'll try to explore a bit further. EDIT: The optimal solution to this would actually be to ditch the Svelte component decorator and use a normal one but there's another bug, already tracked #24549 where normal decorator run twice in svelte. |
I was trying to fix one of the two bugs but i can't create a sandbox locally...i get this error which @JReinhold told me it's quite common...does anyone knows the fix for this?
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Super exciting!
I've partially reviewed this, all the way to code/frameworks/sveltekit/src/preview.ts
I'll review the rest ASAP.
Co-authored-by: Jeppe Reinhold <[email protected]>
Co-authored-by: Jeppe Reinhold <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work!!
code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/links.stories.js
Outdated
Show resolved
Hide resolved
Co-authored-by: Jeppe Reinhold <[email protected]>
…om:paoloricciuti/storybook into paoloricciuti/next
@paoloricciuti I did a bunch of stuff here and I think we're good now!
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
Depends on #24921
Closes #20999
What I did
This PR adds a tighter integration for sveltekit allowing the user to mock the stores from sveltekit, adds an override listener for the links allowing you to execute code when a link it's clicked intead of navigating, adding the ability to still import and run code on
afterNavigate
(here emulated likeonMount
), adding callbacks for the other functions likegoto
,invalidateAll
.For the moment is a draft PR. I'm getting some weird compilation errors whenever i try to dynamically import
@storybook/addon-actions
but overall it should already work kinda fine.Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!
import { page } from "$app/stores"
{JSON.stringify($page)}
Button.stories.ts
and add to the primary buttonparameters.sveltekit.stores.page={ test: true }
{ "test": true }
Documentation
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 PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the
@storybookjs/core
team here.core team members can create a canary release here or locally with
gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=<PR_NUMBER>