import { generateTheme } from '@repay/cactus-theme' import * as React from 'react' import renderWithTheme from '../../tests/helpers/renderWithTheme' import { StyleProvider } from '../StyleProvider/StyleProvider' import Box from './Box' describe('component: Box', () => { test('should accept built-in props', () => { const { getByText } = renderWithTheme( Content ) const box = getByText('Content') const style = window.getComputedStyle(box) expect(style.zIndex).toBe('100') expect(style.borderStyle).toBe('solid') expect(style.borderRadius).toBe('20px') }) test('borderRadius prop should accept themed arg & custom shape definitions', () => { const { getByText, rerender } = renderWithTheme(Content, { shape: 'intermediate', }) let myBox = getByText('Content') let boxStyles = window.getComputedStyle(myBox) expect(boxStyles.borderRadius).toBe('4px') rerender( Content ) myBox = getByText('Content') boxStyles = window.getComputedStyle(myBox) expect(boxStyles.borderRadius).toBe('12px') rerender( Content ) myBox = getByText('Content') boxStyles = window.getComputedStyle(myBox) expect(boxStyles.borderRadius).toBe('25px') }) test('individual border radius props should accept custom shape definitions', () => { const { getByText, rerender } = renderWithTheme( Content , { shape: 'intermediate' } ) let myBox = getByText('Content') let boxStyles = window.getComputedStyle(myBox) expect(boxStyles.borderTopLeftRadius).toBe('10px') expect(boxStyles.borderTopRightRadius).toBe('10px') expect(boxStyles.borderBottomRightRadius).toBe('10px') expect(boxStyles.borderBottomLeftRadius).toBe('10px') rerender( Content ) myBox = getByText('Content') boxStyles = window.getComputedStyle(myBox) expect(boxStyles.borderTopLeftRadius).toBe('1px') expect(boxStyles.borderTopRightRadius).toBe('20px') expect(boxStyles.borderBottomRightRadius).toBe('1px') expect(boxStyles.borderBottomLeftRadius).toBe('20px') }) test('should accept flex item props', () => { const { getByText } = renderWithTheme( Flex Item Box ) const box = getByText('Flex Item Box') const boxStyles = window.getComputedStyle(box) expect(boxStyles.flex).toBe('1') expect(boxStyles.flexBasis).toBe('0px') expect(boxStyles.flexGrow).toBe('1') expect(boxStyles.flexShrink).toBe('0') }) })