box-ui-elements-mlh
Version:
70 lines (59 loc) • 2.42 kB
JavaScript
import React from 'react';
import SecurityControlsModal from '../SecurityControlsModal';
import SecurityControlsItem from '../SecurityControlsItem';
describe('features/classification/security-controls/SecurityControlsModal', () => {
let wrapper;
let modalItems;
const getWrapper = props =>
shallow(
<SecurityControlsModal
closeModal={jest.fn()}
definition="classification definition"
classificationName="internal"
isSecurityControlsModalOpen={false}
itemName="welcome.pdf"
modalItems={modalItems}
{...props}
/>,
);
beforeEach(() => {
modalItems = [
{ message: { id: 'msg1', defaultMessage: 'message1' } },
{ message: { id: 'msg2', defaultMessage: 'message2' } },
];
wrapper = getWrapper();
});
test('should return null if itemName is not provided', () => {
wrapper = getWrapper({ itemName: undefined });
expect(wrapper.type()).toBeNull();
});
test('should render a SecurityControlsModal when itemName, classificationName, and definition are provided', () => {
expect(wrapper).toMatchSnapshot();
});
test('should render with correct number of security controls items', () => {
modalItems = [
{ message: { id: 'msg1', defaultMessage: 'message1' } },
{ message: { id: 'msg2', defaultMessage: 'message2' } },
{ message: { id: 'msg3', defaultMessage: 'message3' } },
];
wrapper = getWrapper({ modalItems, itemName: 'welcome.pdf' });
expect(wrapper.find(SecurityControlsItem)).toHaveLength(3);
});
test('should pass tooltipMessage to SecurityControlsItem', () => {
const tooltipMessage = { tooltipMessage: { id: 'msg3', defaultMessage: 'message3' } };
modalItems = [
{ message: { id: 'msg1', defaultMessage: 'message1' } },
{
message: { id: 'msg2', defaultMessage: 'message2' },
tooltipMessage,
},
];
wrapper.setProps({ modalItems });
expect(
wrapper
.find(SecurityControlsItem)
.findWhere(item => item.props().message.id === 'msg2')
.props().tooltipMessage,
).toEqual(tooltipMessage);
});
});