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')
})
})