diff --git a/api/src/devcomp/infrastructure/datasources/learning-content/modules/didacticiel-modulix.json b/api/src/devcomp/infrastructure/datasources/learning-content/modules/didacticiel-modulix.json index c139b31d5a4..1fd14bacb34 100644 --- a/api/src/devcomp/infrastructure/datasources/learning-content/modules/didacticiel-modulix.json +++ b/api/src/devcomp/infrastructure/datasources/learning-content/modules/didacticiel-modulix.json @@ -320,6 +320,55 @@ } ] }, + { + "id": "46577fb1-aadb-49ba-b3fd-721a11da8eb4", + "type": "activity", + "title": "Embed non-auto", + "components": [ + { + "type": "element", + "element": { + "id": "0e3315fd-98ad-492f-9046-4aa867495d84", + "type": "embed", + "isCompletionRequired": false, + "title": "Application", + "url": "https://epreuves.pix.fr/fake2.html", + "height": 640 + } + }, + { + "type": "element", + "element": { + "id": "74d63ec2-f3e3-4ffe-9806-208d33588553", + "type": "qcm", + "instruction": "

Parcourez ces photos trouvées sur le Web : lesquelles correspondent à des situations fictives ?

", + "proposals": [ + { + "id": "1", + "content": "Photo 1" + }, + { + "id": "2", + "content": "Photo 2" + }, + { + "id": "3", + "content": "Photo 3" + }, + { + "id": "4", + "content": "Photo 4" + } + ], + "feedbacks": { + "valid": "Correct !", + "invalid": "Et non !" + }, + "solutions": ["1", "2", "4"] + } + } + ] + }, { "id": "7cf75e70-8749-4392-8081-f2c02badb0fb", "type": "activity", diff --git a/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/element/embed.js b/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/element/embed.js new file mode 100644 index 00000000000..98bd7afbae9 --- /dev/null +++ b/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/element/embed.js @@ -0,0 +1,14 @@ +import Joi from 'joi'; + +import { htmlNotAllowedSchema, uuidSchema } from '../utils.js'; + +const embedSchema = Joi.object({ + id: uuidSchema, + type: Joi.string().valid('embed').required(), + isCompletionRequired: Joi.boolean().valid(false).required(), + title: htmlNotAllowedSchema.required(), + url: Joi.string().uri().required(), + height: Joi.number().min(0).required(), +}).required(); + +export { embedSchema }; diff --git a/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/element/index.js b/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/element/index.js index 3ab99d8291d..e377125536d 100644 --- a/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/element/index.js +++ b/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/element/index.js @@ -1,3 +1,4 @@ +import { embedSchema } from './embed.js'; import { imageElementSchema } from './image.js'; import { qcmElementSchema } from './qcm.js'; import { qcuElementSchema } from './qcu.js'; @@ -8,6 +9,7 @@ import { videoElementSchema } from './video.js'; export { blockInputSchema, blockSelectSchema, + embedSchema, imageElementSchema, qcmElementSchema, qcuElementSchema, diff --git a/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/module.js b/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/module.js index 29c1175e12e..5b270e5ce25 100644 --- a/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/module.js +++ b/api/tests/devcomp/unit/infrastructure/datasources/learning-content/validation/module.js @@ -1,6 +1,7 @@ import Joi from 'joi'; import { + embedSchema, imageElementSchema, qcmElementSchema, qcuElementSchema, @@ -31,6 +32,7 @@ const elementSchema = Joi.alternatives().conditional('.type', { { is: 'qcm', then: qcmElementSchema }, { is: 'qrocm', then: qrocmElementSchema }, { is: 'video', then: videoElementSchema }, + { is: 'embed', then: embedSchema }, ], }); diff --git a/high-level-tests/e2e/cypress/integration/pix-app/modulix-a11y.feature b/high-level-tests/e2e/cypress/integration/pix-app/modulix-a11y.feature index 8c9c6c3b037..bd3aca25287 100644 --- a/high-level-tests/e2e/cypress/integration/pix-app/modulix-a11y.feature +++ b/high-level-tests/e2e/cypress/integration/pix-app/modulix-a11y.feature @@ -18,6 +18,7 @@ Fonctionnalité: Accessibilité de Modulix Quand je vais au grain suivant Quand je vais au grain suivant Quand je vais au grain suivant + Quand je vais au grain suivant Alors la page devrait être accessible Quand je clique sur "Terminer" Et que j'attends 500 ms