Skip to content
Snippets Groups Projects
Select Git revision
  • a529bea68221f00c4303612dd530948b24407a8f
  • mui5-annotation-on-video-stable default
  • get_setter_canvasSizeInformations
  • fix-error-div-into-p
  • annotation-on-video-v2
  • detached
  • annotation-on-video-r17
  • mui5
  • mui5-react-18
  • jacob-test
  • annotation-on-video protected
  • master
  • test-antoinev1
  • 20-fetch-thumbnail-on-annotation
  • add-research-field
  • Save
  • add-plugin
  • 14-wip-no-seek-to
  • 14-bug-on-video-time-control
  • 9_wip_videotests
  • _upgrade_material_ui
  • latest-tetras-16
  • v3.3.0
  • v3.2.0
  • v3.1.1
  • v3.1.0
  • v3.0.0
  • v3.0.0-rc.7
  • v3.0.0-rc.6
  • v3.0.0-rc.5
  • v3.0.0-rc.4
  • v3.0.0-rc.3
  • v3.0.0-rc.2
  • v3.0.0-rc.1
  • v3.0.0-beta.10
  • v3.0.0-beta.9
  • v3.0.0-beta.8
  • v3.0.0-beta.7
  • v3.0.0-beta.6
  • v3.0.0-beta.5
  • v3.0.0-beta.3
41 results

annotations.test.js

Blame
  • annotations.test.js 2.28 KiB
    import { select } from 'redux-saga/effects';
    import { expectSaga } from 'redux-saga-test-plan';
    
    import { fetchAnnotations } from '../../../src/state/sagas/annotations';
    import { getAnnotations, getCanvases } from '../../../src/state/selectors';
    
    describe('annotation sagas', () => {
      describe('fetchAnnotations', () => {
        it('requests IIIF v2-style annotations for each visible canvas', () => {
          const action = {
            visibleCanvases: ['a', 'b'],
            windowId: 'foo',
          };
    
          return expectSaga(fetchAnnotations, action)
            .provide([
              [select(getCanvases, { windowId: 'foo' }), [
                { __jsonld: { otherContent: 'annoId' }, id: 'a' },
                { __jsonld: { otherContent: ['alreadyFetched'] }, id: 'b' },
              ]],
              [select(getAnnotations), { a: {}, b: { alreadyFetched: {} } }],
            ])
            .put({
              annotationId: 'annoId',
              targetId: 'a',
              type: 'mirador/REQUEST_ANNOTATION',
            })
            .run();
        });
        it('requests IIIF v3-style annotations for each visible canvas', () => {
          const action = {
            visibleCanvases: ['a', 'b'],
            windowId: 'foo',
          };
    
          return expectSaga(fetchAnnotations, action)
            .provide([
              [select(getCanvases, { windowId: 'foo' }), [
                { __jsonld: { annotations: { id: 'annoId', type: 'AnnotationPage' } }, id: 'a' },
              ]],
              [select(getAnnotations), { a: {} }],
            ])
            .put({
              annotationId: 'annoId',
              targetId: 'a',
              type: 'mirador/REQUEST_ANNOTATION',
            })
            .run();
        });
        it('handles embedded IIIF v3-style annotations on each visible canvas', () => {
          const action = {
            visibleCanvases: ['a', 'b'],
            windowId: 'foo',
          };
    
          const annotations = { id: 'annoId', items: [], type: 'AnnotationPage' };
    
          return expectSaga(fetchAnnotations, action)
            .provide([
              [select(getCanvases, { windowId: 'foo' }), [
                { __jsonld: { annotations }, id: 'a' },
              ]],
              [select(getAnnotations), { a: {} }],
            ])
            .put({
              annotationId: 'annoId',
              annotationJson: annotations,
              targetId: 'a',
              type: 'mirador/RECEIVE_ANNOTATION',
            })
            .run();
        });
      });
    });