Resumen
twenty-ui/testing expone decoradores de Storybook, asistentes de diseño de vista previa y anulaciones de consultas de medios. Configura estilos y un ThemeProvider en tu vista previa de Storybook antes de renderizar componentes con tema.
Roles de las historias
Comienza cada guía de componentes con una historiaDisplay que muestre un ejemplo representativo y utilizable. Continúa con código de uso que reproduzca la vista previa mediante importaciones públicas. Los componentes compuestos demuestran sus partes en conjunto. Los proveedores y las ayudas de accesibilidad demuestran su efecto en contexto.
Añade un Catalog cuando una comparación con etiquetas ayude a los lectores a elegir entre opciones visuales. Agrupa las variantes, los tamaños, los colores y los estados por separado; usa una matriz solo cuando sea útil comparar dos dimensiones en conjunto. Un componente simple puede usar un ejemplo alternativo. Los diálogos, los menús y otros componentes interactivos suelen necesitar ejemplos específicos para cada flujo de trabajo.
Conserva una cobertura exhaustiva de capturas de pantalla en historias VisualRegression independientes, incluidos los temas oscuros y las matrices de variantes. Etiqueta esas historias con !autodocs y mantenlas fuera de las guías de componentes.
Nombra otras historias según lo que demuestran, como Controlled, WithValidation o MultipleSelection. Mantén las comprobaciones de interacción en historias independientes con funciones play. La visualización y las demás vistas previas de la documentación siguen siendo utilizables por el lector sin acciones automatizadas.
ComponentDecorator
ComponentDecorator envuelve una historia en ComponentStorybookLayout. Establece parameters.container.width y parameters.container.height en píxeles. También lee los argumentos inverted y accent de la historia para elegir un fondo opcional.
Catálogo agrupado
GroupedCatalog proporciona a los catálogos seleccionados un diseño compartido para encabezados, filas ajustadas y espaciado. Cada grupo tiene un label y un array examples. Cada ejemplo necesita un label único dentro de su grupo; puede incluir cualquier otro dato utilizado por renderExample.
{ label: string; examples: CatalogExample[]; }[]
requerido
Labeled groups of examples. Each example has a unique label within its group and can include additional data for the renderer.
(example: CatalogExample) => ReactNode
requerido
Renders one example, including its visible label or accessible name. The layout supplies the surrounding cell and spacing.
CatalogDecorator
CatalogDecorator renderiza combinaciones de hasta cuatro dimensiones de parameters.catalog.dimensions. Cada dimensión tiene un name, values, un mapeador props(value) y un formateador opcional labels(value). El mapeador devuelve las props para esa celda. parameters.catalog.options.elementContainer acepta width, style y className.
ComponentStorybookLayout
Usa el diseño directamente al componer una vista previa fuera de un decorador. Acepta un elemento hijo.string
Background color override.
Element
requerido
The component preview element.
number
Container height in pixels. Defaults to fit-content.
number
Container width in pixels. When omitted, the container has a 300px minimum width.
Anulaciones de consultas de medios
UsaoverrideMediaQueryMatches en el beforeEach de una historia para forzar los resultados de los hooks responsivos. Devuelve su función de limpieza para restaurar window.matchMedia después de la historia:
TOUCH_DEVICE_MEDIA_QUERY por separado cuando un ejemplo dependa de la entrada táctil. Estas anulaciones controlan los resultados de matchMedia; usa una ventana gráfica de Storybook para cambiar las consultas de medios de CSS y el ancho de la vista previa.
Vistas previas de la documentación
Las historias incorporadas en la documentación deben ser de presentación y no tener una funciónplay. Mantén las pruebas de interacción en historias separadas. Comparte explícitamente args, render, decorators y parameters cuando sea necesario, en lugar de propagar una historia de interacción en una vista previa. La comprobación de incorporaciones de documentación rechaza las historias marcadas con la etiqueta play-fn de Storybook, incluidas las funciones play heredadas.
La primera incrustación de cada guía de componentes debe hacer referencia a una historia exportada como Display. Asigna a cada incrustación un título descriptivo para su iframe y suficiente altura para mostrar el ejemplo. La vista previa compartida ofrece pestañas claras y oscuras, además de un enlace a Storybook, donde los lectores pueden usar controles para explorar props.
Ejecuta npx nx check:ui-stories twenty-docs para comprobar la visualización requerida, los títulos de las vistas previas, las referencias y las reglas de presentación. Ejecuta npx nx check:ui twenty-docs para validar las referencias de API generadas y verificar los tipos de los ejemplos que se pueden copiar.