diff --git a/frontend/scenarios/edit_metadata.feature b/frontend/scenarios/edit_metadata.feature index faeb50cb..63bbfc3b 100644 --- a/frontend/scenarios/edit_metadata.feature +++ b/frontend/scenarios/edit_metadata.feature @@ -8,16 +8,18 @@ Scénario: dont on est l'auteur Et une session active avec mon compte Quand j'essaie de remplacer les métadonnées de la glose par : """ - dc_title: Commentaire + dc_title: Chapitre 1: Contexte historique dc_creator: Alice Liddell dc_issued: 1932 dc_language: french dc_translator: Charles Beaudelaire + dc_isPartOf: Philosophie Moderne : Une première approche """ - Alors "Commentaire" est la glose ouverte + Alors "Chapitre 1: Contexte historique" est la glose ouverte Et le créateur est "Alice Liddell" Et l'année de publication est "1932" Et la langue est "French" + Et le titre de l'ouvrage est "Philosophie Moderne : Une première approche" Scénario: dont on n'est pas l'auteur diff --git a/frontend/src/components/Metadata.jsx b/frontend/src/components/Metadata.jsx index 15ba1b9b..fb7b7e0f 100644 --- a/frontend/src/components/Metadata.jsx +++ b/frontend/src/components/Metadata.jsx @@ -26,7 +26,7 @@ function Metadata({metadata = {}, editable, backend, setLastUpdate}) { ...Object.fromEntries( Object.entries(editedDocument).filter(([key, _]) => !key.startsWith('dc_')) ), - ...parse(event.target.value) + ...parse(event.target.value.replaceAll(/(dc_isPartOf|dc_title):\s*"?([^"\n]+)"?$/gm, '$1: "$2"')) }; setEditedDocument(updatedDocument); backend.putDocument(updatedDocument) diff --git a/frontend/tests/context.js b/frontend/tests/context.js index 42d20456..8ca45f4e 100644 --- a/frontend/tests/context.js +++ b/frontend/tests/context.js @@ -199,7 +199,9 @@ Soit("ayant les métadonnées", (metadata) => { cy.get('form textarea').invoke('val').then(actual => { const expectedMetadata = parseStrToObject(metadata); const actualMetadata = parseStrToObject(actual); - expect(actualMetadata).to.deep.equal(expectedMetadata); + Object.entries(expectedMetadata).forEach(([key, value]) => { + expect(actualMetadata).to.have.property(key, value); + }); }); cy.get('.scholium>.icon.focus').click(); }); diff --git a/frontend/tests/outcome.js b/frontend/tests/outcome.js index cf23f917..a799eac0 100644 --- a/frontend/tests/outcome.js +++ b/frontend/tests/outcome.js @@ -50,6 +50,10 @@ Alors("l'année de publication est {string}", (year) => { cy.get('.metadata > .edition').first().should('contain', year); }); +Alors("le titre de l'ouvrage est {string}", (title) => { + cy.get('.metadata > .edition').first().should('contain', title); +}) + Alors("la langue est {string}", (language) => { cy.get('.metadata > .edition').first().should('contain', language); });