1 | import React from 'react';
|
2 | import { render, screen } from '@testing-library/react';
|
3 | import { Badge } from '..';
|
4 | import {
|
5 | testForChildrenInComponent,
|
6 | testForCustomTag,
|
7 | testForDefaultClass,
|
8 | testForDefaultTag,
|
9 | } from '../testUtils';
|
10 |
|
11 | describe('Badge', () => {
|
12 | it('should render a span by default', () => {
|
13 | testForDefaultTag(Badge, 'span');
|
14 | });
|
15 |
|
16 | it('should render an anchor when when href is provided', () => {
|
17 | render(
|
18 | <Badge href="#" data-testid="badge">
|
19 | Yo!
|
20 | </Badge>,
|
21 | );
|
22 | expect(screen.getByTestId('badge').tagName.toLowerCase()).toBe('a');
|
23 | });
|
24 |
|
25 | it('should render a custom tag when provided', () => {
|
26 | testForCustomTag(Badge);
|
27 | });
|
28 |
|
29 | it('should render children', () => {
|
30 | testForChildrenInComponent(Badge);
|
31 | });
|
32 |
|
33 | it('should render badges with secondary color', () => {
|
34 | testForDefaultClass(Badge, 'bg-secondary');
|
35 | });
|
36 |
|
37 | it('should render Badges with other colors', () => {
|
38 | render(
|
39 | <Badge color="danger" data-testid="badge">
|
40 | Danger Badge
|
41 | </Badge>,
|
42 | );
|
43 | expect(screen.getByTestId('badge')).toHaveClass('bg-danger');
|
44 | });
|
45 |
|
46 | it('should render Badges as pills', () => {
|
47 | render(
|
48 | <Badge pill data-testid="badge">
|
49 | Pill Badge
|
50 | </Badge>,
|
51 | );
|
52 | expect(screen.getByTestId('badge')).toHaveClass('rounded-pill');
|
53 | });
|
54 | });
|