Skip to content

Commit

Permalink
test(ui): add Compose test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronlamz committed Oct 22, 2023
1 parent 6df25fb commit 6a1e65c
Showing 1 changed file with 66 additions and 0 deletions.
66 changes: 66 additions & 0 deletions packages/ui/src/components/compose/Compose.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import type { DComposeProps } from './Compose';

import { render } from '../../__tests__/utils';
import { DButton } from '../button';
import { DInput } from '../input';
import { DCompose, DComposeItem } from './index';

const dPrefix = 'rd-';

describe('DCompose', () => {
it('renders correctly', () => {
const { getByRole } = render(<DCompose></DCompose>);
const composeElement = getByRole('group');
expect(composeElement).toBeInTheDocument();
});

it('renders with different dSize values', () => {
const sizes: (DComposeProps['dSize'] | undefined)[] = ['smaller', 'larger'];
sizes.forEach((size) => {
const { container } = render(
<DCompose dSize={size}>
<DInput dPlaceholder="Search" />
<DButton>Button</DButton>
</DCompose>
);
const inputDiv = container.querySelector('.rd-input');
const buttonElement = container.querySelector('.rd-button');
expect(inputDiv).toHaveClass(`${dPrefix}input--${size}`);
expect(buttonElement).toHaveClass(`${dPrefix}button--${size}`);
});
});

it('renders vertically', () => {
const { getByRole } = render(<DCompose dVertical={true} />);
const composeElement = getByRole('group');
expect(composeElement).toHaveClass(`${dPrefix}compose--vertical`);
});

it('renders with dDisabled set to true', () => {
const { container } = render(
<DCompose dDisabled={true}>
<DInput dPlaceholder="Search" />
<DButton>Button</DButton>
</DCompose>
);
const inputDiv = container.querySelector('.rd-input');
const buttonElement = container.querySelector('.rd-button');
expect(inputDiv?.classList.contains('is-disabled')).toBe(true);
expect(buttonElement).toHaveAttribute('disabled');
});

it('renders with children', () => {
const { container } = render(
<DCompose>
<DComposeItem>
<DInput dPlaceholder="Search" />
</DComposeItem>
<DComposeItem>
<DButton>Button</DButton>
</DComposeItem>
</DCompose>
);
const composeItemElements = container.querySelectorAll(`.rd-compose-item`);
expect(composeItemElements.length).toBe(2);
});
});

0 comments on commit 6a1e65c

Please sign in to comment.