diff -r 69eaef18b01b -r 2e939d9cf193 client/src/api/__tests__/WebAnnotationSerializer.test.js --- /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); +});