--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/api/__tests__/WebAnnotationSerializer.test.js Tue Jun 27 13:12:19 2017 +0200
@@ -0,0 +1,76 @@
+import Note from '../../store/noteRecord';
+
+import WebAnnotationSerializer from '../WebAnnotationSerializer';
+
+it('serializes as expected', () => {
+
+ const category = {
+ "key": "keyword",
+ "name": "Mot-clé",
+ "color": "#2ECC71",
+ "text": "Foo"
+ };
+
+ const comment = {
+ "key": "comment",
+ "name": "Commentaire",
+ "color": "#3498DB",
+ "hasComment": true,
+ "comment": "Bar",
+ "text": "Baz"
+ }
+
+ const note = new Note({
+ _id: '123456',
+ session: '9876543',
+
+ plain: 'Foo',
+ raw: {},
+ html: '',
+
+ startedAt: '',
+ finishedAt: '',
+
+ categories: [ category, comment ],
+
+ marginComment: ''
+ })
+
+ const actual = WebAnnotationSerializer.serialize(note);
+
+ const expected = [
+ {
+ "@context": "http://www.w3.org/ns/anno.jsonld",
+ "type": "Annotation",
+ "id": 0,
+ "target": {
+ "source": "/session/9876543/notes/123456",
+ "selector": {
+ "type": "TextQuoteSelector",
+ "exact": "Foo"
+ }
+ }
+ },
+ {
+ "@context": "http://www.w3.org/ns/anno.jsonld",
+ "type": "Annotation",
+ "id": 1,
+ "body": {
+ "type": "TextualBody",
+ "value": "Bar",
+ "format": "text/plain"
+ },
+ "target": {
+ "source": "/session/9876543/notes/123456",
+ "selector": {
+ "type": "TextQuoteSelector",
+ "exact": "Baz"
+ }
+ }
+ }
+ ];
+
+ // console.log(JSON.stringify(actual, null, 2));
+
+ expect(actual).toMatchObject(expected);
+});