UNPKG

@patreon/studio

Version:

Patreon Studio Design System

32 lines 1.37 kB
import { render } from '@testing-library/react'; import React, { useState } from 'react'; import { StudioProvider } from '~/components/StudioProvider'; import { IS_HAPPO } from './env'; /** * Uses `@testing-library/react` to render components with the theme. */ export const renderWithTheme = (children, config) => render(<StudioProvider tokenColorMode={config?.tokenColorMode}>{children}</StudioProvider>); /** * The `happoCompatibleState` function is a utility for creating stories * that are compatible with both Storybook and Happo. This papers over the * differences between the two environments by providing a consistent API * for managing basic state. */ export function happoCompatibleState(story, initialState) { if (IS_HAPPO) { return function Render() { return story({ isOpen: initialState?.isOpen ?? true, setIsOpen: () => null, selectedItem: initialState?.selectedItem ?? 0, setSelectedItem: () => null, }); }; } return function Render() { const [isOpen, setIsOpen] = useState(initialState?.isOpen ?? false); const [selectedItem, setSelectedItem] = useState(initialState?.selectedItem ?? 0); return story({ isOpen, setIsOpen, selectedItem, setSelectedItem }); }; } //# sourceMappingURL=testing-helpers.jsx.map