import { Box, Button, Flex } from '@chakra-ui/react'; import React from 'react'; import { test, expect } from 'playwright/lib'; test.use({ viewport: { width: 150, height: 350 } }); [ { variant: 'solid', states: [ 'default', 'disabled', 'hovered', 'active' ] }, { variant: 'outline', colorScheme: 'gray', withDarkMode: true, states: [ 'default', 'disabled', 'hovered', 'active', 'selected' ] }, { variant: 'outline', colorScheme: 'blue', withDarkMode: true, states: [ 'default', 'disabled', 'hovered', 'active', 'selected' ] }, { variant: 'simple', withDarkMode: true, states: [ 'default', 'hovered' ] }, { variant: 'ghost', withDarkMode: true, states: [ 'default', 'hovered', 'active' ] }, { variant: 'subtle', states: [ 'default', 'hovered' ] }, { variant: 'subtle', colorScheme: 'gray', states: [ 'default', 'hovered' ], withDarkMode: true }, ].forEach(({ variant, colorScheme, withDarkMode, states }) => { test.describe(`variant ${ variant }${ colorScheme ? ` with ${ colorScheme } color scheme` : '' }${ withDarkMode ? ' +@dark-mode' : '' }`, () => { test('', async({ render }) => { const component = await render( { states?.map((state) => { switch (state) { case 'default': { return ( Default: ); } case 'disabled': { return ( Disabled: ); } case 'active': { return ( Active: ); } case 'hovered': { return ( Hovered: ); } case 'selected': { return ( Selected: ); } default: { return null; } } }) } , ); await component.getByText('Hover me').hover(); await expect(component).toHaveScreenshot(); }); }); });