Skip to content
Snippets Groups Projects
Select Git revision
  • e14a25a52092e04b90fd06f3920dfc51c7315ea3
  • master default protected
  • multiprocessing
  • experiment/clara
  • experiment/spec2B-poc
  • experiment/qivalio-poc
  • experiment/ertms
  • MAY-2023
  • FEB-2023
  • EGC-2023
  • 0.2.1
  • v0.2.0
  • v0.1.2
13 results

prepare_work_data.py

Blame
  • 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);
        });
      });
    });