Skip to content
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

Test: Enhance the context with canvas when the test package is used #28368

Merged
merged 25 commits into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2485a11
Add canvas to the context in the test package
kasperpeulen Jun 26, 2024
1d6e703
Merge branch 'refs/heads/kasper/context-prop' into kasper/canvas
kasperpeulen Jun 27, 2024
67c490c
Add default canvas as empty object
kasperpeulen Jun 27, 2024
48e7135
Merge branch 'refs/heads/kasper/context-prop' into kasper/canvas
kasperpeulen Jun 27, 2024
9bdf213
Fix type issue
kasperpeulen Jun 27, 2024
a7bd8d3
Don't prebundle @storybook/csf as module augmentation fails that way
kasperpeulen Jun 27, 2024
291ae3f
Merge branch 'refs/heads/kasper/context-prop' into kasper/canvas
kasperpeulen Jun 27, 2024
281b1b3
Fix yarn lock
kasperpeulen Jun 27, 2024
53cae2d
Add userEvent as well, closes #17988
kasperpeulen Jun 28, 2024
1c4cacf
Rollback
kasperpeulen Jun 28, 2024
6eda181
Merge branch 'kasper/context-prop' into kasper/canvas
kasperpeulen Jun 28, 2024
8087ad7
Rollback userEvent
kasperpeulen Jun 28, 2024
baad958
Merge remote-tracking branch 'origin/kasper/canvas' into kasper/canvas
kasperpeulen Jun 28, 2024
b9f4f04
Fix test type
kasperpeulen Jun 28, 2024
1a4da68
Merge branch 'kasper/context-prop' into kasper/canvas
kasperpeulen Jun 28, 2024
5ff5a08
Fix angular types in test
kasperpeulen Jun 28, 2024
a49a005
Merge remote-tracking branch 'origin/kasper/canvas' into kasper/canvas
kasperpeulen Jun 28, 2024
880e081
Update code/lib/test/template/stories/loader-enhancements.stories.ts
kasperpeulen Jun 28, 2024
9a44fa7
Merge branch 'next' into kasper/canvas
kasperpeulen Jul 1, 2024
777df33
Use stable csf release
kasperpeulen Jul 2, 2024
623d4e3
Merge remote-tracking branch 'refs/remotes/origin/next' into kasper/c…
kasperpeulen Jul 2, 2024
e7c6a8f
Fix test package.json
kasperpeulen Jul 2, 2024
c48a684
Fix yarn.lock
kasperpeulen Jul 2, 2024
47c00ee
Fix import
kasperpeulen Jul 2, 2024
e9910ce
Fix dependencies
kasperpeulen Jul 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion code/addons/links/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
"prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/addon-bundle.ts"
},
"dependencies": {
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/global": "^5.0.0",
"ts-dedent": "^2.0.0"
},
Expand Down
1 change: 1 addition & 0 deletions code/frameworks/angular/src/client/decorators.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const defaultContext: Addon_StoryContext<AngularRenderer> = {
canvasElement: undefined,
step: undefined,
context: undefined,
canvas: undefined,
};

defaultContext.context = defaultContext;
Expand Down
2 changes: 1 addition & 1 deletion code/lib/codemod/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
"@babel/core": "^7.24.4",
"@babel/preset-env": "^7.24.4",
"@babel/types": "^7.24.0",
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/csf-tools": "workspace:*",
"@storybook/node-logger": "workspace:*",
"@storybook/types": "workspace:*",
Expand Down
2 changes: 1 addition & 1 deletion code/lib/core-events/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
"prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"ts-dedent": "^2.0.0"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion code/lib/core-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
"@storybook/channels": "workspace:*",
"@storybook/core-common": "workspace:*",
"@storybook/core-events": "workspace:*",
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/csf-tools": "workspace:*",
"@storybook/docs-mdx": "3.1.0-next.0",
"@storybook/global": "^5.0.0",
Expand Down
2 changes: 1 addition & 1 deletion code/lib/csf-tools/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"@babel/parser": "^7.24.4",
"@babel/traverse": "^7.24.1",
"@babel/types": "^7.24.0",
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/types": "workspace:*",
"fs-extra": "^11.1.0",
"recast": "^0.23.5",
Expand Down
2 changes: 1 addition & 1 deletion code/lib/manager-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"@storybook/channels": "workspace:*",
"@storybook/client-logger": "workspace:*",
"@storybook/core-events": "workspace:*",
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/global": "^5.0.0",
"@storybook/icons": "^1.2.5",
"@storybook/router": "workspace:*",
Expand Down
2 changes: 1 addition & 1 deletion code/lib/preview-api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"@storybook/channels": "workspace:*",
"@storybook/client-logger": "workspace:*",
"@storybook/core-events": "workspace:*",
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/global": "^5.0.0",
"@storybook/types": "workspace:*",
"@types/qs": "^6.9.5",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ export class StoryRender<TRenderer extends Renderer> implements Render<TRenderer
loaded: {},
step: (label, play) => runStep(label, play, context),
context: null!,
canvas: {},
Copy link
Member

Choose a reason for hiding this comment

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

Doesn't it make more sense to set these to null initially? Or perhaps a getter which throws an error when canvas isn't available because @storybook/test isn't installed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

To make module augmentation work, I needed to implement it as an empty interface in CSF. Therefore according to typescript, it can not be null.

};

context.context = context;

const renderContext: RenderContext<TRenderer> = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ export function composeStory<TRenderer extends Renderer = Renderer, TArgs extend
step: (label, play) => story.runStep(label, play, context),
canvasElement: globalThis?.document?.body,
context: null!,
canvas: {},
...story,
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,16 @@ export function prepareStory<TRenderer extends Renderer>(
const addExtraContext = (
context: PreparedStory & Pick<StoryContext, 'args' | 'globals'>
): StoryContext => {
const extraContext = {
const extraContext: StoryContext = {
...context,
hooks: new HooksContext(),
viewMode: 'story' as const,
loaded: {},
abortSignal: new AbortController().signal,
canvasElement: {},
step: vi.fn(),
context: undefined! as StoryContext,
context: null! as StoryContext,
canvas: null!,
};
extraContext.context = extraContext;
return extraContext;
Expand Down
2 changes: 1 addition & 1 deletion code/lib/source-loader/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
"prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/types": "workspace:*",
"estraverse": "^5.2.0",
"lodash": "^4.17.21",
Expand Down
1 change: 1 addition & 0 deletions code/lib/test/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
"dependencies": {
"@storybook/client-logger": "workspace:*",
"@storybook/core-events": "workspace:*",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/instrumenter": "workspace:*",
"@storybook/preview-api": "workspace:*",
"@testing-library/dom": "10.1.0",
Expand Down
30 changes: 26 additions & 4 deletions code/lib/test/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { instrument } from '@storybook/instrumenter';
import { type LoaderFunction } from '@storybook/csf';
import type { LoaderFunction } from '@storybook/csf';
import chai from 'chai';
import { global } from '@storybook/global';
import { expect as rawExpect } from './expect';
Expand All @@ -11,10 +11,20 @@ import {
resetAllMocks,
restoreAllMocks,
} from './spy';
import type { Renderer } from '@storybook/types';
import { type queries, within } from './testing-library';

export * from './spy';

type Queries = ReturnType<typeof within<typeof queries>>;

declare module '@storybook/csf' {
interface Canvas extends Queries {}
interface StoryContext {
// TODO enable this in a later PR, once we have time to QA this properly
// userEvent: ReturnType<typeof userEvent.setup>;
}
}

export const { expect } = instrument(
{ expect: rawExpect },
{
Expand Down Expand Up @@ -84,12 +94,24 @@ export const traverseArgs = (value: unknown, depth = 0, key?: string): unknown =
return value;
};

const nameSpiesAndWrapActionsInSpies: LoaderFunction<Renderer> = ({ initialArgs }) => {
const nameSpiesAndWrapActionsInSpies: LoaderFunction = ({ initialArgs }) => {
traverseArgs(initialArgs);
};

const enhanceContext: LoaderFunction = (context) => {
if (globalThis.HTMLElement && context.canvasElement instanceof globalThis.HTMLElement) {
context.canvas = within(context.canvasElement);
// TODO enable this in a later PR, once we have time to QA this properly
// context.userEvent = userEvent.setup();
}
};

// We are using this as a default Storybook loader, when the test package is used. This avoids the need for optional peer dependency workarounds.
// eslint-disable-next-line no-underscore-dangle
(global as any).__STORYBOOK_TEST_LOADERS__ = [resetAllMocksLoader, nameSpiesAndWrapActionsInSpies];
(global as any).__STORYBOOK_TEST_LOADERS__ = [
resetAllMocksLoader,
nameSpiesAndWrapActionsInSpies,
enhanceContext,
];
// eslint-disable-next-line no-underscore-dangle
(global as any).__STORYBOOK_TEST_ON_MOCK_CALL__ = onMockCall;
24 changes: 24 additions & 0 deletions code/lib/test/template/stories/loader-enhancements.stories.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/* eslint-disable @typescript-eslint/naming-convention,storybook/prefer-pascal-case */
import { expect, within, userEvent as globalUserEvent } from '@storybook/test';

const meta = {
component: globalThis.Components.Button,
parameters: { chromatic: { disable: true } },
args: { label: 'Button' },
};

export default meta;

export const canvas_is_equal_to_within_canvas_element = {
Copy link
Member

Choose a reason for hiding this comment

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

Why not camelCase?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

because iFindCamelCaseHarderToReadForLongerSentences

async play({ canvas, canvasElement }) {
const oldCanvas = within(canvasElement);
await expect(canvas satisfies typeof oldCanvas).toEqual(oldCanvas);
},
};

// TODO enable this in a later PR, once we have time to QA this properly
// export const context_user_event_is_equal_to_user_event_setup = {
// async play({ userEvent }) {
// await expect(userEvent satisfies typeof globalUserEvent).toEqual(globalUserEvent.setup());
Copy link
Member

Choose a reason for hiding this comment

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

I suspect this won't be equal, as setup() supposedly creates a new instance of UserEvent.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, but toEqual doesn't check for reference. Structurally it was equal.

// },
// };
2 changes: 1 addition & 1 deletion code/lib/types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@
},
"dependencies": {
"@storybook/channels": "workspace:*",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@types/express": "^4.17.21",
"file-system-cache": "2.3.0"
},
"devDependencies": {
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@types/fs-extra": "^11.0.1",
"@types/node": "^18.0.0",
"typescript": "^5.3.2"
Expand Down
2 changes: 1 addition & 1 deletion code/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
"@storybook/core-events": "workspace:*",
"@storybook/core-server": "workspace:*",
"@storybook/core-webpack": "workspace:*",
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/csf-plugin": "workspace:*",
"@storybook/csf-tools": "workspace:*",
"@storybook/docs-tools": "workspace:*",
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts"
},
"dependencies": {
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/csf-tools": "workspace:*",
"@storybook/global": "^5.0.0",
"@storybook/preview-api": "workspace:*",
Expand Down
2 changes: 1 addition & 1 deletion code/ui/blocks/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
"@storybook/client-logger": "workspace:*",
"@storybook/components": "workspace:*",
"@storybook/core-events": "workspace:*",
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/docs-tools": "workspace:*",
"@storybook/global": "^5.0.0",
"@storybook/icons": "^1.2.5",
Expand Down
2 changes: 1 addition & 1 deletion code/ui/components/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"@radix-ui/react-dialog": "^1.0.5",
"@radix-ui/react-slot": "^1.0.2",
"@storybook/client-logger": "workspace:*",
"@storybook/csf": "0.1.10--canary.d841bb4.0",
"@storybook/csf": "0.1.10--canary.99.ba76785.0",
"@storybook/global": "^5.0.0",
"@storybook/icons": "^1.2.5",
"@storybook/theming": "workspace:*",
Expand Down
35 changes: 18 additions & 17 deletions code/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5288,7 +5288,7 @@ __metadata:
dependencies:
"@storybook/client-logger": "workspace:*"
"@storybook/core-events": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/global": "npm:^5.0.0"
"@storybook/manager-api": "workspace:*"
"@storybook/preview-api": "workspace:*"
Expand Down Expand Up @@ -5555,7 +5555,7 @@ __metadata:
"@storybook/client-logger": "workspace:*"
"@storybook/components": "workspace:*"
"@storybook/core-events": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/docs-tools": "workspace:*"
"@storybook/global": "npm:^5.0.0"
"@storybook/icons": "npm:^1.2.5"
Expand Down Expand Up @@ -5785,7 +5785,7 @@ __metadata:
"@babel/core": "npm:^7.24.4"
"@babel/preset-env": "npm:^7.24.4"
"@babel/types": "npm:^7.24.0"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/csf-tools": "workspace:*"
"@storybook/node-logger": "workspace:*"
"@storybook/types": "workspace:*"
Expand Down Expand Up @@ -5822,7 +5822,7 @@ __metadata:
"@radix-ui/react-scroll-area": "npm:^1.0.5"
"@radix-ui/react-slot": "npm:^1.0.2"
"@storybook/client-logger": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/global": "npm:^5.0.0"
"@storybook/icons": "npm:^1.2.5"
"@storybook/test": "workspace:*"
Expand Down Expand Up @@ -5905,7 +5905,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@storybook/core-events@workspace:lib/core-events"
dependencies:
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
chalk: "npm:^4.1.0"
ts-dedent: "npm:^2.0.0"
typescript: "npm:^5.3.2"
Expand All @@ -5925,7 +5925,7 @@ __metadata:
"@storybook/channels": "workspace:*"
"@storybook/core-common": "workspace:*"
"@storybook/core-events": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/csf-tools": "workspace:*"
"@storybook/docs-mdx": "npm:3.1.0-next.0"
"@storybook/global": "npm:^5.0.0"
Expand Down Expand Up @@ -6007,7 +6007,7 @@ __metadata:
"@babel/parser": "npm:^7.24.4"
"@babel/traverse": "npm:^7.24.1"
"@babel/types": "npm:^7.24.0"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/types": "workspace:*"
"@types/fs-extra": "npm:^11.0.1"
"@types/js-yaml": "npm:^4.0.5"
Expand All @@ -6019,12 +6019,12 @@ __metadata:
languageName: unknown
linkType: soft

"@storybook/csf@npm:0.1.10--canary.d841bb4.0":
version: 0.1.10--canary.d841bb4.0
resolution: "@storybook/csf@npm:0.1.10--canary.d841bb4.0"
"@storybook/csf@npm:0.1.10--canary.99.ba76785.0":
version: 0.1.10--canary.99.ba76785.0
resolution: "@storybook/csf@npm:0.1.10--canary.99.ba76785.0"
dependencies:
type-fest: "npm:^2.19.0"
checksum: 10c0/35a9b5cf88a3378fb362d0a1988265ec218aa98d54b82b56e78a4c1142b3beed6e2ee42bd8731bac009fd8133e085c92af43541028468865b51c0b1220ded338
checksum: 10c0/8c99e2e1d458d69fbe8156ee6da22f3b9365cb3cb7051f051c1aa3cbd819033112decf16f2a4263163cedf8a6729a382ac82e77e9d704fbae498493788508d2c
languageName: node
linkType: hard

Expand Down Expand Up @@ -6206,7 +6206,7 @@ __metadata:
"@storybook/channels": "workspace:*"
"@storybook/client-logger": "workspace:*"
"@storybook/core-events": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/global": "npm:^5.0.0"
"@storybook/icons": "npm:^1.2.5"
"@storybook/router": "workspace:*"
Expand Down Expand Up @@ -6546,7 +6546,7 @@ __metadata:
"@storybook/client-logger": "workspace:*"
"@storybook/core-common": "workspace:*"
"@storybook/core-events": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/global": "npm:^5.0.0"
"@storybook/types": "workspace:*"
"@types/qs": "npm:^6.9.5"
Expand Down Expand Up @@ -6734,7 +6734,7 @@ __metadata:
"@storybook/core-events": "workspace:*"
"@storybook/core-server": "workspace:*"
"@storybook/core-webpack": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/csf-plugin": "workspace:*"
"@storybook/csf-tools": "workspace:*"
"@storybook/docs-tools": "workspace:*"
Expand Down Expand Up @@ -6886,7 +6886,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@storybook/server@workspace:renderers/server"
dependencies:
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/csf-tools": "workspace:*"
"@storybook/global": "npm:^5.0.0"
"@storybook/preview-api": "workspace:*"
Expand All @@ -6903,7 +6903,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@storybook/source-loader@workspace:lib/source-loader"
dependencies:
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/types": "workspace:*"
estraverse: "npm:^5.2.0"
lodash: "npm:^4.17.21"
Expand Down Expand Up @@ -7022,6 +7022,7 @@ __metadata:
dependencies:
"@storybook/client-logger": "workspace:*"
"@storybook/core-events": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@storybook/instrumenter": "workspace:*"
"@storybook/preview-api": "workspace:*"
"@testing-library/dom": "npm:10.1.0"
Expand Down Expand Up @@ -7073,7 +7074,7 @@ __metadata:
resolution: "@storybook/types@workspace:lib/types"
dependencies:
"@storybook/channels": "workspace:*"
"@storybook/csf": "npm:0.1.10--canary.d841bb4.0"
"@storybook/csf": "npm:0.1.10--canary.99.ba76785.0"
"@types/express": "npm:^4.17.21"
"@types/fs-extra": "npm:^11.0.1"
"@types/node": "npm:^18.0.0"
Expand Down