Select Git revision
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' }] }];