From 8677307e175783aa4dfaa049b2372c2d2cee4f95 Mon Sep 17 00:00:00 2001 From: Florian C Date: Tue, 10 Jun 2025 13:30:26 +0200 Subject: [PATCH] PROCESS : 'compare_licences' may be tested with cypress-cucumber (see #199). --- .../scenarios}/compare_licenses.feature | 2 +- frontend/tests/context.js | 16 ++++++++++++++++ frontend/tests/event.js | 15 +++++++++++++++ frontend/tests/outcome.js | 9 +++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) rename {features => frontend/scenarios}/compare_licenses.feature (94%) diff --git a/features/compare_licenses.feature b/frontend/scenarios/compare_licenses.feature similarity index 94% rename from features/compare_licenses.feature rename to frontend/scenarios/compare_licenses.feature index 6a446f27..3aff70cb 100644 --- a/features/compare_licenses.feature +++ b/frontend/scenarios/compare_licenses.feature @@ -13,7 +13,7 @@ Scénario: d'une traduction avec licences compatibles Scénario: d'une traduction avec licences non compatibles Soit "Víly (Charles Perrault)" le document principal - Et "CC-BY-NC-ND" le code de la licence du document principal + Et "CC-BY-NC-ND" le nom de la licence du document principal Quand je consulte le contenu de "Fairies (Charles Perrault)" Alors je vois que le code de la licence est "CC-BY-NC-ND" Et je peux lire "Licenses are not compatible" diff --git a/frontend/tests/context.js b/frontend/tests/context.js index ca302035..3590f2b0 100644 --- a/frontend/tests/context.js +++ b/frontend/tests/context.js @@ -35,6 +35,8 @@ Soit("{string} le document principal", (title) => { 'Treignes, le 8 septembre 2012 (Christophe Lejeune)': '/6b56ee657c870dfacd34e9ae4e0643dd', 'Restaurer la vapeur': '/6b56ee657c870dfacd34e9ae4e050fcc', 'Vestiges (diagramme de classes)': '/146e6e8442f0405b721b79357d0021e3', + 'Víly (Charles Perrault)' : '/420ab198674f11eda3b7a3fdd5ea984f', + 'Entretien avec un responsable d\'opération' : '/05b61f5285c711ed97bf6b9b56808c45', }; expect(uris).to.contain.key(title); cy.visit(uris[title]); @@ -150,3 +152,17 @@ Soit("ayant les métadonnées", (metadata) => { }); cy.get('.scholium>.icon.focus').click(); }); + +Soit("{string} le nom de la licence du document principal", (n_licence) => { + cy.get('.license-container').eq(0).find('.license').then($license => { + if ($license.find('img').length) { + cy.wrap($license).find('img').should('have.attr', 'alt', n_licence); + } else if ($license.find('span').length) { + cy.wrap($license).find('span').should('have.text', n_licence); + } else if ($license.text().includes(n_licence)) { + expect($license.text()).to.include(n_licence); + } else { + throw new Error('Neither img nor span found in .license, or license text does not contain expected value'); + } + }); +}); diff --git a/frontend/tests/event.js b/frontend/tests/event.js index 5adb6b2a..3de0a3dc 100644 --- a/frontend/tests/event.js +++ b/frontend/tests/event.js @@ -117,3 +117,18 @@ Quand("je consulte les informations de création du document", function () { cy.get('.info-icon-container').trigger('mouseover'); }); +Quand("je consulte le contenu de {string}", function (title) { + const uris = { + 'Les fées (Charles Perrault)': '/37b4b9ba5cdb11ed887beb5c373fa643', + 'Vidéo Sherlock Jr. (Buster Keaton)': '/4e1a31e14b032f2fa9e161ee9b009125', + 'Treignes, le 8 septembre 2012 (Christophe Lejeune)': '/6b56ee657c870dfacd34e9ae4e0643dd', + 'Restaurer la vapeur': '/6b56ee657c870dfacd34e9ae4e050fcc', + 'Vestiges (diagramme de classes)': '/146e6e8442f0405b721b79357d0021e3', + 'Víly (Charles Perrault)' : '/420ab198674f11eda3b7a3fdd5ea984f', + 'Fairies (Charles Perrault)' : '/96bddee6-24b2-11ef-a1f4-5351a35fcaac', + 'Étiquetage de l\'entretien' : '/6327c5008d1f11ed9aa8e7ae771dee2e', + }; + expect(uris).to.contain.key(title); + cy.get(`a.icon.open[href*="#${uris[title].slice(1)}"]`).click(); +} +); diff --git a/frontend/tests/outcome.js b/frontend/tests/outcome.js index a2c03c35..14822de2 100644 --- a/frontend/tests/outcome.js +++ b/frontend/tests/outcome.js @@ -148,3 +148,12 @@ Alors("la glose ouverte a les métadonnées", (metadata) => { }); }); }); + +Alors("je vois que le code de la licence est {string}", (n_licence) => { + cy.get('.license-container').eq(1).find('.license img[alt="' + n_licence + '"]').should('exist'); +}); + +Alors("je ne peux pas lire {string}", (text) => { + cy.get('.license-compatibility').should('not.exist'); +} +); \ No newline at end of file