UNPKG

3.31 kBJavaScriptView Raw
1import React from 'react';
2import { render, screen } from '@testing-library/react';
3import { Media } from '..';
4import {
5 testForChildrenInComponent,
6 testForCustomTag,
7 testForDefaultClass,
8 testForDefaultTag,
9} from '../testUtils';
10
11describe('Media', () => {
12 it('should render a div tag by default', () => {
13 testForDefaultTag(Media, 'div');
14 });
15
16 it('should render an h4 tag by default for heading', () => {
17 render(<Media data-testid="test" heading />);
18 expect(screen.getByTestId('test').tagName.toLowerCase()).toBe('h4');
19 });
20
21 it('should render an a tag by default Media with an href', () => {
22 render(<Media href="#" data-testid="test" />);
23 expect(screen.getByTestId('test').tagName.toLowerCase()).toBe('a');
24 });
25
26 it('should render an img tag by default for object', () => {
27 render(<Media object data-testid="test" />);
28
29 expect(screen.getByTestId('test').tagName.toLowerCase()).toBe('img');
30 });
31
32 it('should render an img tag by default Media with a src', () => {
33 render(<Media src="#" data-testid="test" />);
34
35 expect(screen.getByTestId('test').tagName.toLowerCase()).toBe('img');
36 });
37
38 it('should render a ul tag by default for list', () => {
39 render(<Media list data-testid="test" />);
40
41 expect(screen.getByTestId('test').tagName.toLowerCase()).toBe('ul');
42 });
43
44 it('should pass additional classNames', () => {
45 render(<Media className="extra" data-testid="test" />);
46
47 expect(screen.getByTestId('test')).toHaveClass('extra');
48 });
49
50 it('should render custom tag', () => {
51 testForCustomTag(Media);
52 });
53
54 it('should render body', () => {
55 render(<Media body data-testid="test" />);
56
57 expect(screen.getByTestId('test')).toHaveClass('media-body');
58 });
59
60 it('should render heading', () => {
61 render(<Media heading data-testid="test" />);
62
63 expect(screen.getByTestId('test')).toHaveClass('media-heading');
64 });
65
66 it('should render left', () => {
67 render(<Media left data-testid="test" />);
68
69 expect(screen.getByTestId('test')).toHaveClass('media-left');
70 });
71
72 it('should render right', () => {
73 render(<Media right data-testid="test" />);
74
75 expect(screen.getByTestId('test')).toHaveClass('media-right');
76 });
77
78 it('should render top', () => {
79 render(<Media top data-testid="test" />);
80
81 expect(screen.getByTestId('test')).toHaveClass('media-top');
82 });
83
84 it('should render bottom', () => {
85 render(<Media bottom data-testid="test" />);
86
87 expect(screen.getByTestId('test')).toHaveClass('media-bottom');
88 });
89
90 it('should render middle', () => {
91 render(<Media middle data-testid="test" />);
92
93 expect(screen.getByTestId('test')).toHaveClass('media-middle');
94 });
95
96 it('should render object', () => {
97 render(<Media object data-testid="test" />);
98
99 expect(screen.getByTestId('test')).toHaveClass('media-object');
100 });
101
102 it('should render media', () => {
103 testForDefaultClass(Media, 'media');
104 });
105
106 it('should render list', () => {
107 render(
108 <Media list data-testid="test">
109 <Media tag="li" />
110 <Media tag="li" />
111 <Media tag="li" />
112 </Media>,
113 );
114
115 expect(screen.getByTestId('test').querySelectorAll('li').length).toBe(3);
116 });
117
118 it('should render children', () => {
119 testForChildrenInComponent(Media);
120 });
121});