Skip to content
Snippets Groups Projects
Select Git revision
  • c2edb3b35a846c531c8b376db5fba65be7d7c17b
  • annotation-on-video default protected
  • demo_ci
  • 3-upstream-01022023
  • master
  • gh3538-captions
  • 16-adapt-for-images-annot
  • 15-api-for-annotations-on-video
  • 15-annotations-on-videos
  • video_for_annotations
  • wip-1-annotations-on-videos
  • 9-videoviewer-tests
  • 9_wip_videotests
  • 6-fix-tests-and-ci
  • _fix_ci
  • wip-webpack-from-git
16 results

ThumbnailFactory.js

  • AnnotationsOverlay.test.js 11.03 KiB
    import React from 'react';
    import ReactDOM from 'react-dom';
    import { shallow } from 'enzyme';
    import OpenSeadragon from 'openseadragon';
    import { Utils } from 'manifesto.js/dist-esmodule/Utils';
    import { AnnotationsOverlay } from '../../../src/components/AnnotationsOverlay';
    import OpenSeadragonCanvasOverlay from '../../../src/lib/OpenSeadragonCanvasOverlay';
    import AnnotationList from '../../../src/lib/AnnotationList';
    import CanvasWorld from '../../../src/lib/CanvasWorld';
    import fixture from '../../fixtures/version-2/019.json';
    
    const canvases = Utils.parseManifest(fixture).getSequences()[0].getCanvases();
    
    jest.mock('react-dom');
    jest.mock('openseadragon');
    jest.mock('../../../src/lib/OpenSeadragonCanvasOverlay');
    
    describe('AnnotationsOverlay', () => {
      let wrapper;
      let viewer;
      let updateViewport;
      beforeEach(() => {
        OpenSeadragon.mockClear();
        OpenSeadragonCanvasOverlay.mockClear();
    
        updateViewport = jest.fn();
        viewer = { addHandler: () => {}, forceRedraw: () => {} };
    
        wrapper = shallow(
          <AnnotationsOverlay
            annotations={[]}
            viewer={viewer}
            classes={{}}
            searchAnnotations={[]}
            windowId="base"
            config={{}}
            updateViewport={updateViewport}
            t={k => k}
            canvasWorld={new CanvasWorld(canvases)}
          />,
        );
      });
    
      describe('annotationsMatch', () => {
        it('is false if the annotations are a different size', () => {
          const currentAnnotations = [{ id: 1, resources: [{ id: 'rid1' }] }];
          const previousAnnotations = [{ id: 1, resources: [{ id: 'rid1' }] }, { id: 2, resources: [{ id: 'rid2' }] }];
    
          expect(
            AnnotationsOverlay.annotationsMatch(currentAnnotations, previousAnnotations),
          ).toBe(false);
        });
    
        it('is true if the previous annotation\'s resource IDs all match', () => {
          const currentAnnotations = [{ id: 1, resources: [{ id: 'rid1' }] }];
          const previousAnnotations = [{ id: 1, resources: [{ id: 'rid1' }] }];
    
          expect(
            AnnotationsOverlay.annotationsMatch(currentAnnotations, previousAnnotations),
          ).toBe(true);
        });
    
        it('is true if both are empty', () => {
          expect(AnnotationsOverlay.annotationsMatch([], [])).toBe(true);
        });
    
        it('is false if the previous annotation\'s resource IDs do not match', () => {
          const currentAnnotations = [{ id: 1, resources: [{ id: 'rid1' }] }];
          const previousAnnotations = [{ id: 1, resources: [{ id: 'rid2' }] }];