client/src/api/__tests__/WebAnnotationSerializer.test.js
author ymh <ymh.work@gmail.com>
Fri, 30 Nov 2018 10:53:15 +0100
changeset 183 f8f3af9e5c83
parent 102 b0e36664f1f2
permissions -rw-r--r--
Change the settings to avoid using Session authentication for rest framework as it raise exceptions in case client and backend are on the same domain On the filter, adapt to take into account new version of django_filters
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
98
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     1
import Note from '../../store/noteRecord';
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     2
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     3
import WebAnnotationSerializer from '../WebAnnotationSerializer';
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     4
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     5
it('serializes as expected', () => {
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     6
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     7
  const category = {
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     8
    "key": "keyword",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     9
    "name": "Mot-clé",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    10
    "color": "#2ECC71",
102
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    11
    "text": "Foo",
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    12
    "selection": {
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    13
      "start": 0,
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    14
      "end": 10,
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    15
    },
98
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    16
  };
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    17
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    18
  const comment = {
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    19
    "key": "comment",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    20
    "name": "Commentaire",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    21
    "color": "#3498DB",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    22
    "hasComment": true,
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    23
    "comment": "Bar",
102
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    24
    "text": "Baz",
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    25
    "selection": {
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    26
      "start": 0,
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    27
      "end": 10,
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    28
    },
98
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    29
  }
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    30
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    31
  const note = new Note({
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    32
    _id: '123456',
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    33
    session: '9876543',
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    34
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    35
    plain: 'Foo',
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    36
    raw: {},
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    37
    html: '',
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    38
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    39
    startedAt: '',
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    40
    finishedAt: '',
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    41
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    42
    categories: [ category, comment ],
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    43
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    44
    marginComment: ''
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    45
  })
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    46
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    47
  const actual = WebAnnotationSerializer.serialize(note);
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    48
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    49
  const expected = [
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    50
    {
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    51
      "@context": "http://www.w3.org/ns/anno.jsonld",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    52
      "type": "Annotation",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    53
      "id": 0,
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    54
      "target": {
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    55
        "source": "/session/9876543/notes/123456",
102
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    56
        "selector": [
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    57
          {
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    58
            "type": "TextQuoteSelector",
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    59
            "exact": "Foo"
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    60
          },
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    61
          {
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    62
            "type": "TextPositionSelector",
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    63
            "start": 0,
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    64
            "end": 10
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    65
          }
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    66
        ]
98
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    67
      }
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    68
    },
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    69
    {
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    70
      "@context": "http://www.w3.org/ns/anno.jsonld",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    71
      "type": "Annotation",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    72
      "id": 1,
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    73
      "body": {
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    74
        "type": "TextualBody",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    75
        "value": "Bar",
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    76
        "format": "text/plain"
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    77
      },
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    78
      "target": {
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    79
        "source": "/session/9876543/notes/123456",
102
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    80
        "selector": [
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    81
          {
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    82
            "type": "TextQuoteSelector",
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    83
            "exact": "Baz"
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    84
          },
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    85
          {
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    86
            "type": "TextPositionSelector",
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    87
            "start": 0,
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    88
            "end": 10
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    89
          }
b0e36664f1f2 Add TextPositionSelector.
Alexandre Segura <mex.zktk@gmail.com>
parents: 98
diff changeset
    90
        ]
98
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    91
      }
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    92
    }
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    93
  ];
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    94
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    95
  // console.log(JSON.stringify(actual, null, 2));
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    96
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    97
  expect(actual).toMatchObject(expected);
2e939d9cf193 Introduce WebAnnotationSerializer.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    98
});