import { describe, expect, it } from 'vitest';
import { render } from 'vitest-browser-react';
import Flex from './Flex.js';
describe('Flex', () => {
it('styles itself properly with wrap flag set to false', async () => {
const { container } = await render(
Hey
Hi
Hello
,
);
const wrapper = container.firstElementChild;
expect(wrapper).toHaveStyle('display: flex');
expect(wrapper).toHaveStyle('flex-wrap: nowrap');
});
it('styles itself properly with wrap flag set to true', async () => {
const { container } = await render(
Hey
Hi
Hello
,
);
const wrapper = container.firstElementChild;
expect(wrapper).toHaveStyle('display: flex');
expect(wrapper).toHaveStyle('flex-wrap: wrap');
});
it('renders all given children', async () => {
const { container } = await render(
Hey
Hi
Hello
,
);
const wrapper = container.firstElementChild as HTMLDivElement;
const children = wrapper.children;
expect(children).toHaveLength(3);
expect(children[0]).toHaveTextContent('Hey');
expect(children[1]).toHaveTextContent('Hi');
expect(children[2]).toHaveTextContent('Hello');
});
it('properly sizes and positions all the elements', async () => {
const { container } = await render(
Hey
Hi
,
);
const wrapper = container.firstElementChild as HTMLDivElement;
const children = Array.from(wrapper.children);
for (const child of children) {
expect(child).toHaveStyle('flex-basis: 33.333333333333336%');
expect(child).toHaveStyle('flex-shrink: 0');
expect(child).toHaveStyle('flex-grow: 0');
expect(child).toHaveStyle('overflow: hidden');
}
});
});