import * as React from 'react'
import renderWithTheme from '../../tests/helpers/renderWithTheme'
import Card from './Card'
describe('component: Card', () => {
test('should support margin space props', () => {
const { getByText } = renderWithTheme(Content)
const card = getByText('Content')
const cardSyles = window.getComputedStyle(card)
expect(cardSyles.margin).toBe('4px')
})
test('should support padding props', () => {
const { getByText, rerender } = renderWithTheme(Content)
let card = getByText('Content')
expect(window.getComputedStyle(card).padding).toBe('16px')
rerender(Content)
card = getByText('Content')
expect(window.getComputedStyle(card).padding).toBe('40px')
rerender(
Content
)
card = getByText('Content')
expect(window.getComputedStyle(card).paddingTop).toBe('40px')
expect(window.getComputedStyle(card).paddingBottom).toBe('40px')
expect(window.getComputedStyle(card).paddingLeft).toBe('24px')
expect(window.getComputedStyle(card).paddingRight).toBe('24px')
rerender(
Content
)
card = getByText('Content')
expect(window.getComputedStyle(card).paddingTop).toBe('24px')
expect(window.getComputedStyle(card).paddingBottom).toBe('24px')
expect(window.getComputedStyle(card).paddingLeft).toBe('40px')
expect(window.getComputedStyle(card).paddingRight).toBe('40px')
})
describe('with theme customization', () => {
test('should have no box shadow & 2px borders', () => {
const { getByText } = renderWithTheme(Content, {
boxShadows: false,
border: 'thick',
})
const card = getByText('Content')
const cardSyles = window.getComputedStyle(card)
expect(cardSyles.borderWidth).toBe('2px')
expect(cardSyles.boxShadow).toBe('')
})
test('should have 4px border radius', () => {
const { getByText } = renderWithTheme(Content, { shape: 'intermediate' })
const card = getByText('Content')
const cardSyles = window.getComputedStyle(card)
expect(cardSyles.borderRadius).toBe('4px')
})
})
test('should support flex item props', () => {
const { getByText } = renderWithTheme(
Flex Card
)
const card = getByText('Flex Card')
expect(card).toHaveStyle('flex: 1')
expect(card).toHaveStyle('flex-grow: 1')
expect(card).toHaveStyle('flex-shrink: 0')
expect(card).toHaveStyle('flex-basis: 0')
})
})