Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import * as React from 'react';
import { render } from '@testing-library/react';
import { shallow } from 'enzyme';
import React from 'react';

import { render, screen } from '@testing-library/react';
import "@testing-library/jest-dom";

import AddressBookIcon from '@patternfly/react-icons/dist/esm/icons/address-book-icon';
import { EmptyState, EmptyStateVariant } from '../EmptyState';
import { EmptyStateBody } from '../EmptyStateBody';
Expand All @@ -12,8 +14,8 @@ import { Title, TitleSizes } from '../../Title';

describe('EmptyState', () => {
test('Main', () => {
const view = render(
<EmptyState>
render(
<EmptyState data-testid="empty-state-test-id">
<Title headingLevel="h5" size="lg">
HTTP Proxies
</Title>
Expand All @@ -28,86 +30,88 @@ describe('EmptyState', () => {
</EmptyStateSecondaryActions>
</EmptyState>
);
expect(view.container).toMatchSnapshot();
expect(screen.getByTestId('empty-state-test-id').outerHTML).toMatchSnapshot();
});

test('Main variant large', () => {
const view = render(
<EmptyState variant={EmptyStateVariant.large}>
<Title headingLevel="h3" size={TitleSizes.md}>EmptyState large</Title>
render(
<EmptyState variant={EmptyStateVariant.large} data-testid="empty-state-test-id">
<Title headingLevel="h3" size={TitleSizes.md}>
EmptyState large
</Title>
</EmptyState>
);
expect(view.container).toMatchSnapshot();
expect(screen.getByTestId('empty-state-test-id').outerHTML).toMatchSnapshot();
});

test('Main variant small', () => {
const view = render(
<EmptyState variant={EmptyStateVariant.small}>
<Title headingLevel="h3" size={TitleSizes.md}>EmptyState small</Title>
render(
<EmptyState variant={EmptyStateVariant.small} data-testid="empty-state-test-id">
<Title headingLevel="h3" size={TitleSizes.md}>
EmptyState small
</Title>
</EmptyState>
);
expect(view.container).toMatchSnapshot();
expect(screen.getByTestId('empty-state-test-id').outerHTML).toMatchSnapshot();
});

test('Main variant xs', () => {
const view = render(
<EmptyState variant={EmptyStateVariant.xs}>
<Title headingLevel="h3" size={TitleSizes.md}>EmptyState small</Title>
render(
<EmptyState variant={EmptyStateVariant.xs} data-testid="empty-state-test-id">
<Title headingLevel="h3" size={TitleSizes.md}>
EmptyState small
</Title>
</EmptyState>
);
expect(view.container).toMatchSnapshot();
expect(screen.getByTestId('empty-state-test-id').outerHTML).toMatchSnapshot();
});

test('Body', () => {
const view = shallow(<EmptyStateBody className="custom-empty-state-body" id="empty-state-1" />);
expect(view.props().className).toBe('pf-c-empty-state__body custom-empty-state-body');
expect(view.props().id).toBe('empty-state-1');
render(<EmptyStateBody className="custom-empty-state-body" data-testid="body-test-id" />);
expect(screen.getByTestId('body-test-id')).toHaveClass('custom-empty-state-body pf-c-empty-state__body');
});

test('Secondary Action', () => {
const view = shallow(<EmptyStateSecondaryActions className="custom-empty-state-secondary" id="empty-state-2" />);
expect(view.props().className).toBe('pf-c-empty-state__secondary custom-empty-state-secondary');
expect(view.props().id).toBe('empty-state-2');
render(<EmptyStateSecondaryActions className="custom-empty-state-secondary" data-testid="actions-test-id" />);
expect(screen.getByTestId('actions-test-id')).toHaveClass('custom-empty-state-secondary pf-c-empty-state__secondary');
});

test('Icon', () => {
const view = shallow(
<EmptyStateIcon icon={AddressBookIcon} className="custom-empty-state-icon" id="empty-state-icon" />
);
expect(view.props().className).toBe('pf-c-empty-state__icon custom-empty-state-icon');
expect(view.props().id).toBe('empty-state-icon');
render(<EmptyStateIcon icon={AddressBookIcon} data-testid="icon-test-id" />);
expect(screen.getByTestId('icon-test-id').outerHTML).toContain('pf-c-empty-state__icon');
});

test('Wrap icon in a div', () => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did you delete this test? is it testing the 'container' variant?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neither of these icon tests made much sense to me. I see now that it is wrapped in a div when "icon" variant isn't specified. I can add it back with something similar.

const view = shallow(
const view = render(
<EmptyStateIcon
variant="container"
component={AddressBookIcon}
className="custom-empty-state-icon"
id="empty-state-icon"
/>
);
expect(view.find('div').props().className).toBe('pf-c-empty-state__icon custom-empty-state-icon');
expect(view.find('AddressBookIcon').length).toBe(1);
});

expect(view.container.querySelector('div')).toHaveClass('pf-c-empty-state__icon custom-empty-state-icon');
expect(view.container.querySelector('svg')).toBeInTheDocument();
})

test('Primary div', () => {
const view = shallow(
<EmptyStatePrimary className="custom-empty-state-prim-cls" id="empty-state-prim-id">
render(
<EmptyStatePrimary data-testid="primary-test-id">
<Button variant="link">Link</Button>
</EmptyStatePrimary>
);
expect(view.props().className).toBe('pf-c-empty-state__primary custom-empty-state-prim-cls');
expect(view.props().id).toBe('empty-state-prim-id');
expect(screen.getByTestId('primary-test-id').className).toContain('pf-c-empty-state__primary');
});

test('Full height', () => {
const view = render(
<EmptyState isFullHeight variant={EmptyStateVariant.large}>
<Title headingLevel="h3" size={TitleSizes.md}>EmptyState large</Title>
render(
<EmptyState isFullHeight variant={EmptyStateVariant.large} data-testid="empty-state-test-id">
<Title headingLevel="h3" size={TitleSizes.md}>
EmptyState large
</Title>
</EmptyState>
);
expect(view.container).toMatchSnapshot();
expect(screen.getByTestId('empty-state-test-id').outerHTML).toMatchSnapshot();
});

});
Original file line number Diff line number Diff line change
@@ -1,136 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`EmptyState Full height 1`] = `
<div>
<div
class="pf-c-empty-state pf-m-lg pf-m-full-height"
>
<div
class="pf-c-empty-state__content"
>
<h3
class="pf-c-title pf-m-md"
data-ouia-component-id="OUIA-Generated-Title-5"
data-ouia-component-type="PF4/Title"
data-ouia-safe="true"
>
EmptyState large
</h3>
</div>
</div>
</div>
`;
exports[`EmptyState Full height 1`] = `"<div class=\\"pf-c-empty-state pf-m-lg pf-m-full-height\\" data-testid=\\"empty-state-test-id\\"><div class=\\"pf-c-empty-state__content\\"><h3 data-ouia-component-type=\\"PF4/Title\\" data-ouia-safe=\\"true\\" data-ouia-component-id=\\"OUIA-Generated-Title-5\\" class=\\"pf-c-title pf-m-md\\">EmptyState large</h3></div></div>"`;

exports[`EmptyState Main 1`] = `
<div>
<div
class="pf-c-empty-state"
>
<div
class="pf-c-empty-state__content"
>
<h5
class="pf-c-title pf-m-lg"
data-ouia-component-id="OUIA-Generated-Title-1"
data-ouia-component-type="PF4/Title"
data-ouia-safe="true"
>
HTTP Proxies
</h5>
<div
class="pf-c-empty-state__body"
>
Defining HTTP Proxies that exist on your network allows you to perform various actions through those proxies.
</div>
<button
aria-disabled="false"
class="pf-c-button pf-m-primary"
data-ouia-component-id="OUIA-Generated-Button-primary-1"
data-ouia-component-type="PF4/Button"
data-ouia-safe="true"
type="button"
>
New HTTP Proxy
</button>
<div
class="pf-c-empty-state__secondary"
>
<button
aria-disabled="false"
aria-label="learn more action"
class="pf-c-button pf-m-link"
data-ouia-component-id="OUIA-Generated-Button-link-1"
data-ouia-component-type="PF4/Button"
data-ouia-safe="true"
type="button"
>
Learn more about this in the documentation.
</button>
</div>
</div>
</div>
</div>
`;
exports[`EmptyState Main 1`] = `"<div class=\\"pf-c-empty-state\\" data-testid=\\"empty-state-test-id\\"><div class=\\"pf-c-empty-state__content\\"><h5 data-ouia-component-type=\\"PF4/Title\\" data-ouia-safe=\\"true\\" data-ouia-component-id=\\"OUIA-Generated-Title-1\\" class=\\"pf-c-title pf-m-lg\\">HTTP Proxies</h5><div class=\\"pf-c-empty-state__body\\">Defining HTTP Proxies that exist on your network allows you to perform various actions through those proxies.</div><button aria-disabled=\\"false\\" class=\\"pf-c-button pf-m-primary\\" type=\\"button\\" data-ouia-component-type=\\"PF4/Button\\" data-ouia-safe=\\"true\\" data-ouia-component-id=\\"OUIA-Generated-Button-primary-1\\">New HTTP Proxy</button><div class=\\"pf-c-empty-state__secondary\\"><button aria-disabled=\\"false\\" aria-label=\\"learn more action\\" class=\\"pf-c-button pf-m-link\\" type=\\"button\\" data-ouia-component-type=\\"PF4/Button\\" data-ouia-safe=\\"true\\" data-ouia-component-id=\\"OUIA-Generated-Button-link-1\\">Learn more about this in the documentation.</button></div></div></div>"`;

exports[`EmptyState Main variant large 1`] = `
<div>
<div
class="pf-c-empty-state pf-m-lg"
>
<div
class="pf-c-empty-state__content"
>
<h3
class="pf-c-title pf-m-md"
data-ouia-component-id="OUIA-Generated-Title-2"
data-ouia-component-type="PF4/Title"
data-ouia-safe="true"
>
EmptyState large
</h3>
</div>
</div>
</div>
`;
exports[`EmptyState Main variant large 1`] = `"<div class=\\"pf-c-empty-state pf-m-lg\\" data-testid=\\"empty-state-test-id\\"><div class=\\"pf-c-empty-state__content\\"><h3 data-ouia-component-type=\\"PF4/Title\\" data-ouia-safe=\\"true\\" data-ouia-component-id=\\"OUIA-Generated-Title-2\\" class=\\"pf-c-title pf-m-md\\">EmptyState large</h3></div></div>"`;

exports[`EmptyState Main variant small 1`] = `
<div>
<div
class="pf-c-empty-state pf-m-sm"
>
<div
class="pf-c-empty-state__content"
>
<h3
class="pf-c-title pf-m-md"
data-ouia-component-id="OUIA-Generated-Title-3"
data-ouia-component-type="PF4/Title"
data-ouia-safe="true"
>
EmptyState small
</h3>
</div>
</div>
</div>
`;
exports[`EmptyState Main variant small 1`] = `"<div class=\\"pf-c-empty-state pf-m-sm\\" data-testid=\\"empty-state-test-id\\"><div class=\\"pf-c-empty-state__content\\"><h3 data-ouia-component-type=\\"PF4/Title\\" data-ouia-safe=\\"true\\" data-ouia-component-id=\\"OUIA-Generated-Title-3\\" class=\\"pf-c-title pf-m-md\\">EmptyState small</h3></div></div>"`;

exports[`EmptyState Main variant xs 1`] = `
<div>
<div
class="pf-c-empty-state pf-m-xs"
>
<div
class="pf-c-empty-state__content"
>
<h3
class="pf-c-title pf-m-md"
data-ouia-component-id="OUIA-Generated-Title-4"
data-ouia-component-type="PF4/Title"
data-ouia-safe="true"
>
EmptyState small
</h3>
</div>
</div>
</div>
`;
exports[`EmptyState Main variant xs 1`] = `"<div class=\\"pf-c-empty-state pf-m-xs\\" data-testid=\\"empty-state-test-id\\"><div class=\\"pf-c-empty-state__content\\"><h3 data-ouia-component-type=\\"PF4/Title\\" data-ouia-safe=\\"true\\" data-ouia-component-id=\\"OUIA-Generated-Title-4\\" class=\\"pf-c-title pf-m-md\\">EmptyState small</h3></div></div>"`;
Loading