Select Git revision
jquery.qtip.min.js
AttributionPanel.test.js 2.31 KiB
import React from 'react';
import { shallow } from 'enzyme';
import Typography from '@mui/material/Typography';
import Link from '@mui/material/Link';
import { Img } from 'react-image';
import { AttributionPanel } from '../../../src/components/AttributionPanel';
import { LabelValueMetadata } from '../../../src/components/LabelValueMetadata';
/**
* Helper function to create a shallow wrapper around AttributionPanel
*/
function createWrapper(props) {
return shallow(
<AttributionPanel
id="xyz"
t={str => str}
windowId="window"
{...props}
/>,
);
}
describe('AttributionPanel', () => {
it('renders the required statement', () => {
const requiredStatement = [
{ label: 'x', value: 'y' },
];
const wrapper = createWrapper({ requiredStatement });
expect(wrapper.find(LabelValueMetadata).length).toBe(1);
});
it('renders the rights statement', () => {
const wrapper = createWrapper({ rights: ['http://example.com', 'http://stanford.edu'] });
expect(
wrapper.find(Typography).at(0).matchesElement(
<Typography>rights</Typography>,
),
).toBe(true);
expect(
wrapper.find(Typography).at(1).matchesElement(
<Typography>
<Link href="http://example.com" underline="hover">http://example.com</Link>
</Typography>,
),
).toBe(true);
expect(
wrapper.find(Typography).at(2).matchesElement(
<Typography>
<Link href="http://stanford.edu" underline="hover">http://stanford.edu</Link>
</Typography>,
),
).toBe(true);
});
it('renders the rights statement', () => {
const wrapper = createWrapper({ rights: [] });
expect(
wrapper.find(Typography).length,
).toBe(0);
});
it('renders the manifest logo', () => {
const manifestLogo = 'http://example.com';
const wrapper = createWrapper({ manifestLogo });
expect(wrapper.find(Img).length).toBe(1);
expect(wrapper.find(Img).props().src).toEqual([manifestLogo]);
});
describe('when metadata is not present', () => {
it('does not render empty elements elements', () => {
const wrapper = createWrapper({});
expect(wrapper.find(LabelValueMetadata).length).toBe(0);
expect(wrapper.find(Typography).length).toBe(0);
expect(wrapper.find(Img).length).toBe(0);
});
});
});