Files

58 lines
1.5 KiB
TypeScript

import type { Preview } from '@storybook/react-vite'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { initialize, mswLoader } from 'msw-storybook-addon'
import { MemoryRouter } from 'react-router-dom'
import '../src/index.css'
import '../src/i18n'
import { LOCALE_KEY } from '../src/i18n'
import { ConfigProvider } from '../src/config/config-provider'
import { handlers } from '../src/test/handlers'
initialize({ onUnhandledRequest: 'bypass' })
const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
a11y: {
// 'todo' - show a11y violations in the test UI only
// 'error' - fail CI on a11y violations
// 'off' - skip a11y checks entirely
test: 'todo'
},
msw: { handlers },
},
loaders: [mswLoader],
beforeEach() {
// Pin the UI language so text-based assertions are deterministic; also
// stops ConfigProvider from switching to the instance default at runtime.
localStorage.setItem(LOCALE_KEY, 'en')
},
decorators: [
(Story) => {
const queryClient = new QueryClient({
defaultOptions: { queries: { retry: false } },
})
return (
<QueryClientProvider client={queryClient}>
<ConfigProvider>
<MemoryRouter>
<Story />
</MemoryRouter>
</ConfigProvider>
</QueryClientProvider>
)
},
],
};
export default preview;