mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-08 10:11:47 +08:00
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { beforeAll, vi, expect as vitestExpect } from 'vitest';
|
|
|
|
import { setProjectAnnotations } from '@storybook/react';
|
|
import { userEvent as storybookEvent, expect as storybookExpect } from '@storybook/test';
|
|
|
|
// eslint-disable-next-line import/namespace
|
|
import * as testAnnotations from '@storybook/experimental-addon-test/preview';
|
|
|
|
import * as coreAnnotations from '../addons/toolbars/template/stories/preview';
|
|
import * as componentAnnotations from '../core/template/stories/preview';
|
|
// register global components used in many stories
|
|
import '../renderers/react/template/components';
|
|
import * as projectAnnotations from './preview';
|
|
|
|
vi.spyOn(console, 'warn').mockImplementation((...args) => console.log(...args));
|
|
|
|
const annotations = setProjectAnnotations([
|
|
// @ts-expect-error check type errors later
|
|
projectAnnotations,
|
|
// @ts-expect-error check type errors later
|
|
componentAnnotations,
|
|
coreAnnotations,
|
|
testAnnotations,
|
|
{
|
|
// experiment with injecting Vitest's interactivity API over our userEvent while tests run in browser mode
|
|
// https://vitest.dev/guide/browser/interactivity-api.html
|
|
loaders: async (context) => {
|
|
// eslint-disable-next-line no-underscore-dangle
|
|
if (globalThis.__vitest_browser__) {
|
|
const vitest = await import('@vitest/browser/context');
|
|
const { userEvent: browserEvent } = vitest;
|
|
context.userEvent = browserEvent.setup();
|
|
context.expect = vitestExpect;
|
|
} else {
|
|
context.userEvent = storybookEvent.setup();
|
|
context.expect = storybookExpect;
|
|
}
|
|
},
|
|
},
|
|
]);
|
|
|
|
beforeAll(annotations.beforeAll);
|