fannypack
Version:
An accessible, composable, and friendly React UI Kit
225 lines (207 loc) • 6.41 kB
JavaScript
import React from 'react';
import render from '../../_utils/tests/render';
import Column from '../Column';
import Columns from '../../Columns';
import 'jest-styled-components';
it('renders correctly for basic columns', () => {
const { container } = render(
<Columns>
<Column>Column</Column>
<Column>Column</Column>
<Column>Column</Column>
<Column>Column</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
describe('basic sizes', () => {
it('renders correctly when all columns have sizes', () => {
const { container } = render(
<Columns>
<Column spread={6}>Column</Column>
<Column spread={3}>Column</Column>
<Column spread={2}>Column</Column>
<Column spread={1}>Column</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when there is space still left on the right', () => {
const { container } = render(
<Columns>
<Column spread={6}>Column</Column>
<Column spread={3}>Column</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when one of the columns does not have a size', () => {
const { container } = render(
<Columns>
<Column spread={6}>Column</Column>
<Column spread={3}>Column</Column>
<Column>Column</Column>
<Column spread={1}>Column</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when the first column does not have a size', () => {
const { container } = render(
<Columns>
<Column>Column</Column>
<Column spread={3}>Column</Column>
<Column spread={2}>Column</Column>
<Column spread={1}>Column</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
});
describe('basic offsets', () => {
it('renders correctly for a spread offset of "left"', () => {
const { container } = render(
<Columns>
<Column spread={6}>Column</Column>
<Column spread={2} spreadOffset="left">
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly for a spread offset of "right"', () => {
const { container } = render(
<Columns>
<Column spread={2} spreadOffset="right">
Column
</Column>
<Column spread={6}>Column</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly for a spread offset of "both"', () => {
const { container } = render(
<Columns>
<Column spread={6}>Column</Column>
<Column spread={2} spreadOffset="both">
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly for a spread offset of values between 1 and 11', () => {
const { container } = render(
<Columns>
<Column spread={6}>Column</Column>
<Column spread={3} spreadOffset={3}>
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
});
describe('variable sizes', () => {
it('renders correctly when only spread and spreadDesktop is specified', () => {
const { container } = render(
<Columns>
<Column spread={10} spreadDesktop={8}>
Column
</Column>
<Column spread={2} spreadDesktop={4}>
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when all spreads are specified', () => {
const { container } = render(
<Columns>
<Column spread={11} spreadFullHD={10} spreadWidescreen={9} spreadDesktop={8} spreadTablet={7} spreadMobile={6}>
Column
</Column>
<Column spread={1} spreadFullHD={2} spreadWidescreen={3} spreadDesktop={4} spreadTablet={5} spreadMobile={6}>
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when only mobile spread is specified', () => {
const { container } = render(
<Columns>
<Column spreadMobile={8}>Column</Column>
<Column spreadMobile={4}>Column</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when only tablet spread is specified', () => {
const { container } = render(
<Columns>
<Column spreadTablet={8}>Column</Column>
<Column spreadTablet={4}>Column</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
});
describe('variable offsets', () => {
it('renders correctly when only spreadOffset and spreadDesktopOffset is specified', () => {
const { container } = render(
<Columns>
<Column spread={10} spreadOffset={2} spreadDesktop={8} spreadDesktopOffset={4}>
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when all spreadOffsets are specified', () => {
const { container } = render(
<Columns>
<Column
spread={11}
spreadOffset={1}
spreadFullHD={10}
spreadFullHDOffset={2}
spreadWidescreen={9}
spreadWidescreenOffset={3}
spreadDesktop={8}
spreadDesktopOffset={4}
spreadTablet={7}
spreadTabletOffset={5}
spreadMobile={6}
spreadMobileOffset={6}
>
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when only mobile spread offset is specified', () => {
const { container } = render(
<Columns>
<Column spreadMobile={8} spreadMobileOffset={4}>
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
it('renders correctly when only tablet spread offset is specified', () => {
const { container } = render(
<Columns>
<Column spreadTablet={8} spreadTabletOffset={4}>
Column
</Column>
</Columns>
);
expect(container.firstChild).toMatchSnapshot();
});
});