UNPKG

1.68 kBJavaScriptView Raw
1import { render, screen } from '@testing-library/react';
2import '@testing-library/jest-dom';
3import React from 'react';
4import { DropdownContext } from './DropdownContext';
5
6export function testForCustomClass(Component, props = {}) {
7 render(<Component {...props} data-testid="test" className="custom-class" />);
8 const node = screen.getByTestId('test');
9 expect(node).toHaveClass('custom-class');
10}
11
12export function testForCustomTag(Component, props = {}, tag = 'h1') {
13 render(<Component {...props} tag={tag} data-testid="test" />);
14 const node = screen.getByTestId('test');
15 expect(node.tagName.toLowerCase()).toMatch(tag);
16}
17
18export function testForCustomAttribute(Component, props = {}) {
19 render(
20 <Component {...props} data-testid="test" custom-attribute="custom-value" />,
21 );
22 const node = screen.getByTestId('test');
23 expect(node).toHaveAttribute('custom-attribute', 'custom-value');
24}
25
26export function testForDefaultTag(Component, tag) {
27 render(<Component data-testid="test" />);
28 const node = screen.getByTestId('test');
29 expect(node.tagName.toLowerCase()).toMatch(tag);
30}
31
32export function testForDefaultClass(Component, className) {
33 render(<Component data-testid="test" />);
34 const node = screen.getByTestId('test');
35 expect(node).toHaveClass(className);
36}
37
38export function testForChildrenInComponent(Component) {
39 render(<Component>Yo!</Component>);
40 expect(screen.getByText('Yo!')).toBeInTheDocument();
41}
42
43// Custom render for Dropdown with provider props
44export const customDropdownRender = (ui, providerProps) => {
45 return render(
46 <DropdownContext.Provider value={providerProps}>
47 {ui}
48 </DropdownContext.Provider>,
49 );
50};