Skip to content

Commit b7efe0b

Browse files
committed
Modernize Skeleton and Spinner tests
1 parent a3f4700 commit b7efe0b

File tree

5 files changed

+70
-60
lines changed

5 files changed

+70
-60
lines changed
Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
import React from 'react';
2-
// eslint-disable-next-line no-restricted-imports
3-
import {mountWithAppProvider} from 'test-utilities/legacy';
2+
import {mountWithApp} from 'test-utilities';
43

54
import {SkeletonBodyText} from '../SkeletonBodyText';
65

76
describe('<SkeletonBodyText />', () => {
87
it('renders the amount of lines provided', () => {
9-
const skeletonBodyText = mountWithAppProvider(
10-
<SkeletonBodyText lines={2} />,
11-
);
12-
expect(skeletonBodyText.find('div').first().children()).toHaveLength(2);
8+
const skeletonBodyText = mountWithApp(<SkeletonBodyText lines={2} />);
9+
expect(
10+
skeletonBodyText.find('div', {className: 'SkeletonBodyTextContainer'}),
11+
).toContainReactComponentTimes('div', 2);
1312
});
1413

1514
it('renders 3 lines if none are provided', () => {
16-
const skeletonBodyText = mountWithAppProvider(<SkeletonBodyText />);
17-
expect(skeletonBodyText.find('div').first().children()).toHaveLength(3);
15+
const skeletonBodyText = mountWithApp(<SkeletonBodyText />);
16+
expect(
17+
skeletonBodyText.find('div', {className: 'SkeletonBodyTextContainer'}),
18+
).toContainReactComponentTimes('div', 3);
1819
});
1920
});
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import React from 'react';
2-
// eslint-disable-next-line no-restricted-imports
3-
import {mountWithAppProvider} from 'test-utilities/legacy';
2+
import {mountWithApp} from 'test-utilities';
43

54
import {SkeletonDisplayText} from '../SkeletonDisplayText';
65

76
describe('<SkeletonDisplayText />', () => {
87
it('renders', () => {
9-
const skeletonBodyText = mountWithAppProvider(<SkeletonDisplayText />);
10-
expect(skeletonBodyText.exists()).toBe(true);
8+
const skeletonBodyText = mountWithApp(<SkeletonDisplayText />);
9+
expect(skeletonBodyText).toContainReactComponent('div');
1110
});
1211
});
Lines changed: 43 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React from 'react';
2-
// eslint-disable-next-line no-restricted-imports
3-
import {mountWithAppProvider} from 'test-utilities/legacy';
2+
import {mountWithApp} from 'test-utilities';
43
import {
54
Layout,
65
Card,
@@ -13,68 +12,76 @@ import {SkeletonPage} from '../SkeletonPage';
1312

1413
describe('<SkeletonPage />', () => {
1514
it('renders its children', () => {
16-
const children = (
17-
<Layout>
18-
<Layout.Section>
19-
<Card sectioned>
20-
<SkeletonBodyText />
21-
</Card>
22-
<Card sectioned title="Variants">
23-
<SkeletonBodyText />
24-
</Card>
25-
</Layout.Section>
26-
</Layout>
27-
);
15+
const Children = () => {
16+
return (
17+
<Layout>
18+
<Layout.Section>
19+
<Card sectioned>
20+
<SkeletonBodyText />
21+
</Card>
22+
<Card sectioned title="Variants">
23+
<SkeletonBodyText />
24+
</Card>
25+
</Layout.Section>
26+
</Layout>
27+
);
28+
};
2829

29-
const skeletonPage = mountWithAppProvider(
30-
<SkeletonPage title="Products">{children}</SkeletonPage>,
30+
const skeletonPage = mountWithApp(
31+
<SkeletonPage title="Products">
32+
<Children />
33+
</SkeletonPage>,
3134
);
32-
expect(skeletonPage.contains(children)).toBe(true);
35+
expect(skeletonPage).toContainReactComponent(Children);
3336
});
3437

3538
describe('title', () => {
3639
it('renders an h1 with the Title class when title is defined', () => {
37-
const skeletonPage = mountWithAppProvider(
38-
<SkeletonPage title="Products" />,
39-
);
40+
const skeletonPage = mountWithApp(<SkeletonPage title="Products" />);
4041

41-
expect(skeletonPage.find('h1.Title')).toHaveLength(1);
42-
expect(skeletonPage.find(DisplayText)).toHaveLength(0);
42+
expect(skeletonPage).toContainReactComponent('h1', {className: 'Title'});
43+
expect(skeletonPage).not.toContainReactComponent(DisplayText);
4344
});
4445

4546
it('renders SkeletonTitle when a title not defined', () => {
46-
const skeletonPage = mountWithAppProvider(<SkeletonPage />);
47+
const skeletonPage = mountWithApp(<SkeletonPage />);
4748

48-
expect(skeletonPage.find('h1.Title')).toHaveLength(0);
49-
expect(skeletonPage.find('.SkeletonTitle')).toHaveLength(1);
49+
expect(skeletonPage).not.toContainReactComponent('h1', {
50+
className: 'Title',
51+
});
52+
expect(skeletonPage).toContainReactComponent('div', {
53+
className: 'SkeletonTitle',
54+
});
5055
});
5156

5257
it('renders SkeletonTitle when title is an empty string', () => {
53-
const skeletonPage = mountWithAppProvider(<SkeletonPage title="" />);
58+
const skeletonPage = mountWithApp(<SkeletonPage title="" />);
5459

55-
expect(skeletonPage.find('h1.Title')).toHaveLength(0);
56-
expect(skeletonPage.find('.SkeletonTitle')).toHaveLength(1);
60+
expect(skeletonPage).not.toContainReactComponent('h1', {
61+
className: 'Title',
62+
});
63+
expect(skeletonPage).toContainReactComponent('div', {
64+
className: 'SkeletonTitle',
65+
});
5766
});
5867
});
5968

6069
it('renders the provided number of secondary actions as SkeletonBodyText', () => {
61-
const skeletonPage = mountWithAppProvider(
62-
<SkeletonPage secondaryActions={3} />,
63-
);
64-
expect(skeletonPage.find(SkeletonBodyText)).toHaveLength(3);
70+
const skeletonPage = mountWithApp(<SkeletonPage secondaryActions={3} />);
71+
expect(skeletonPage).toContainReactComponentTimes(SkeletonBodyText, 3);
6572
});
6673

6774
it('renders breadcrumbs', () => {
68-
const skeletonPage = mountWithAppProvider(<SkeletonPage breadcrumbs />);
69-
expect(skeletonPage.find(SkeletonBodyText)).toHaveLength(1);
75+
const skeletonPage = mountWithApp(<SkeletonPage breadcrumbs />);
76+
expect(skeletonPage).toContainReactComponent(SkeletonBodyText);
7077
});
7178

7279
describe('primaryAction', () => {
7380
it('renders SkeletonDisplayText if true', () => {
74-
const skeletonPage = mountWithAppProvider(
81+
const skeletonPage = mountWithApp(
7582
<SkeletonPage title="Title" primaryAction />,
7683
);
77-
expect(skeletonPage.find(SkeletonDisplayText)).toHaveLength(1);
84+
expect(skeletonPage).toContainReactComponent(SkeletonDisplayText);
7885
});
7986
});
8087
});
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import React from 'react';
2-
// eslint-disable-next-line no-restricted-imports
3-
import {mountWithAppProvider} from 'test-utilities/legacy';
2+
import {mountWithApp} from 'test-utilities';
43

54
import {SkeletonThumbnail} from '../SkeletonThumbnail';
65

76
describe('<SkeletonThumbnail />', () => {
87
it('renders', () => {
9-
const skeletonThumbnail = mountWithAppProvider(<SkeletonThumbnail />);
10-
expect(skeletonThumbnail.exists()).toBe(true);
8+
const skeletonThumbnail = mountWithApp(<SkeletonThumbnail />);
9+
expect(skeletonThumbnail).toContainReactComponent('div');
1110
});
1211
});

src/components/Spinner/tests/Spinner.test.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import React from 'react';
2-
// eslint-disable-next-line no-restricted-imports
3-
import {mountWithAppProvider} from 'test-utilities/legacy';
42
import {mountWithApp} from 'test-utilities';
53

64
import {Spinner} from '../Spinner';
@@ -20,18 +18,24 @@ describe('<Spinner />', () => {
2018

2119
describe('size', () => {
2220
it('renders a large spinner by default', () => {
23-
const spinner = mountWithAppProvider(<Spinner />);
24-
expect(spinner.find('span').first().hasClass('sizeLarge')).toBeTruthy();
21+
const spinner = mountWithApp(<Spinner />);
22+
expect(spinner).toContainReactComponent('span', {
23+
className: 'Spinner sizeLarge',
24+
});
2525
});
2626

2727
it('renders a large spinner when size is large', () => {
28-
const spinner = mountWithAppProvider(<Spinner size="large" />);
29-
expect(spinner.find('span').first().hasClass('sizeLarge')).toBeTruthy();
28+
const spinner = mountWithApp(<Spinner size="large" />);
29+
expect(spinner).toContainReactComponent('span', {
30+
className: 'Spinner sizeLarge',
31+
});
3032
});
3133

3234
it('renders a small spinner when size is small', () => {
33-
const spinner = mountWithAppProvider(<Spinner size="small" />);
34-
expect(spinner.find('span').first().hasClass('sizeSmall')).toBeTruthy();
35+
const spinner = mountWithApp(<Spinner size="small" />);
36+
expect(spinner).toContainReactComponent('span', {
37+
className: 'Spinner sizeSmall',
38+
});
3539
});
3640
});
3741

0 commit comments

Comments
 (0)