import { render } from '~/src/utils/test'
import { LegacyStack } from '~/src/components/LegacyStack'
import { LegacyStackItem } from './LegacyStackItem'
import styles from './LegacyStackItem.module.scss'
describe('StackItem', () => {
describe('Supports BezierComponentProps interface', () => {
it('supports as prop', () => {
const { getByTestId } = render(
)
expect(getByTestId('stack-item').tagName).toBe('MAIN')
})
it('supports style prop', () => {
const { getByTestId } = render(
)
expect(getByTestId('stack-item')).toHaveStyle({ color: 'blue' })
})
it('supports className prop', () => {
const { getByTestId } = render(
)
expect(getByTestId('stack-item')).toHaveClass('foo')
})
})
it('inherits main axis alignment of parent stack-item component', () => {
const { getByTestId } = render(
)
expect(getByTestId('item')).not.toHaveClass(styles['justify-start'])
})
it('can override main axis alignment of parent stack component', () => {
const { getByTestId } = render(
)
expect(getByTestId('item-start')).toHaveClass(styles['justify-start'])
expect(getByTestId('item-center')).toHaveClass(styles['justify-center'])
expect(getByTestId('item-end')).toHaveClass(styles['justify-end'])
expect(getByTestId('item-stretch')).toHaveClass(styles['justify-stretch'])
})
it('inherits cross axis alignment of parent stack component', () => {
const { getByTestId } = render(
)
expect(getByTestId('item')).not.toHaveClass(styles['align-start'])
})
it('can override cross axis alignment of parent stack component', () => {
const { getByTestId } = render(
)
expect(getByTestId('item-start')).toHaveClass(styles['align-start'])
expect(getByTestId('item-center')).toHaveClass(styles['align-center'])
expect(getByTestId('item-end')).toHaveClass(styles['align-end'])
expect(getByTestId('item-stretch')).toHaveClass(styles['align-stretch'])
})
describe('dimensions', () => {
it('should set all of customizable css variables', () => {
const REQUIRED_CSS_VARS = [
'--b-main-axis-size',
'--b-grow-weight',
'--b-shrink-weight',
'--b-margin-before',
'--b-margin-after',
]
const TEST_IDS = ['one', 'two', 'three', 'four']
const { getByTestId } = render(
)
TEST_IDS.map((id) => getByTestId(id)).forEach((el) =>
REQUIRED_CSS_VARS.forEach((field) =>
expect(el.style.getPropertyValue(field)).not.toBe('')
)
)
})
})
})