UNPKG

2.61 kBJavaScriptView Raw
1function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2import { render, screen } from '@testing-library/react';
3import '@testing-library/jest-dom';
4import React from 'react';
5import { DropdownContext } from './DropdownContext';
6export function testForCustomClass(Component) {
7 var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
8 render( /*#__PURE__*/React.createElement(Component, _extends({}, props, {
9 "data-testid": "test",
10 className: "custom-class"
11 })));
12 var node = screen.getByTestId('test');
13 expect(node).toHaveClass('custom-class');
14}
15export function testForCustomTag(Component) {
16 var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
17 var tag = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'h1';
18 render( /*#__PURE__*/React.createElement(Component, _extends({}, props, {
19 tag: tag,
20 "data-testid": "test"
21 })));
22 var node = screen.getByTestId('test');
23 expect(node.tagName.toLowerCase()).toMatch(tag);
24}
25export function testForCustomAttribute(Component) {
26 var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
27 render( /*#__PURE__*/React.createElement(Component, _extends({}, props, {
28 "data-testid": "test",
29 "custom-attribute": "custom-value"
30 })));
31 var node = screen.getByTestId('test');
32 expect(node).toHaveAttribute('custom-attribute', 'custom-value');
33}
34export function testForDefaultTag(Component, tag) {
35 render( /*#__PURE__*/React.createElement(Component, {
36 "data-testid": "test"
37 }));
38 var node = screen.getByTestId('test');
39 expect(node.tagName.toLowerCase()).toMatch(tag);
40}
41export function testForDefaultClass(Component, className) {
42 render( /*#__PURE__*/React.createElement(Component, {
43 "data-testid": "test"
44 }));
45 var node = screen.getByTestId('test');
46 expect(node).toHaveClass(className);
47}
48export function testForChildrenInComponent(Component) {
49 render( /*#__PURE__*/React.createElement(Component, null, "Yo!"));
50 expect(screen.getByText('Yo!')).toBeInTheDocument();
51}
52
53// Custom render for Dropdown with provider props
54export var customDropdownRender = function customDropdownRender(ui, providerProps) {
55 return render( /*#__PURE__*/React.createElement(DropdownContext.Provider, {
56 value: providerProps
57 }, ui));
58};
\No newline at end of file