Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Créé des scripts pour générer des élements Modulix (PIX-11270) #8097

Merged
merged 3 commits into from
Feb 19, 2024

Conversation

yannbertrand
Copy link
Member

@yannbertrand yannbertrand commented Feb 16, 2024

🦄 Problème

La contribution aux Modulix est un peu limitée pour le moment :

  • il faut générer des UUID très régulièrement,
  • on ne peut pas retenir le format de chaque élément
    • du coup les éléments sont copiés-collés puis modifiés avec des oublis possibles...
  • JSON n'aide pas à la contribution pour des personnes moins techniques.

🤖 Proposition

Donner accès à des scripts dans l'API pour générer des éléments :

# Générer un élément "texte"
node ./api/scripts/modulix/get-sample-text-element.js

# Générer un élément "image"
node ./api/scripts/modulix/get-sample-image-element.js

# Générer un élément "vidéo"
node ./api/scripts/modulix/get-sample-video-element.js

# Générer un élément "QCU"
node ./api/scripts/modulix/get-sample-qcu-element.js

# Générer un élément "QROCM"
node ./api/scripts/modulix/get-sample-qrocm-element.js

# Générer un élément "QCM"
node ./api/scripts/modulix/get-sample-qcm-element.js

Chacun de ces scripts renvoie l'élément demandé au format à jour avec un nouvel UUID ✨ .

Il est aussi possible de copier directement en ajoutant | pbcopy (sur Mac). Une ligne complète donne donc :

node ./api/scripts/modulix/get-sample-qcm-element.js | pbcopy

🌈 Remarques

J'avais prévu initialement de permettre l'usage de script directement en bash grâce à l'usage du shebang mais notre linter nous en empêche. À voir une fois que nous seront passé dans la version 17 de n si l'option ignoreUnpublished nous permet de mettre ça en place.

💯 Pour tester

Récupérer la branche en local et vérifier que chaque script génère bien le bon type d'élément !

@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

@yannbertrand yannbertrand changed the base branch from dev to RPE-module-distinguer-vrai-faux-2 February 16, 2024 16:12
Base automatically changed from RPE-module-distinguer-vrai-faux-2 to dev February 16, 2024 16:12
@yannbertrand yannbertrand force-pushed the PIX-11270-modulix-elements-generator branch from 8d81473 to 225b5a4 Compare February 16, 2024 16:12
@yannbertrand yannbertrand marked this pull request as ready for review February 16, 2024 16:13
@yannbertrand yannbertrand requested a review from a team as a code owner February 16, 2024 16:13
@yannbertrand yannbertrand marked this pull request as draft February 16, 2024 16:26
@yannbertrand yannbertrand force-pushed the PIX-11270-modulix-elements-generator branch 2 times, most recently from 34e8c0b to 9b5702a Compare February 16, 2024 17:14
@yannbertrand yannbertrand marked this pull request as ready for review February 16, 2024 17:16
@@ -1,5 +1,3 @@
#!/usr/bin/env node
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Est-ce que ce commit est nécessaire ? 🤔

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je trouvais intéressant car à la base je trouvais l'UX meilleure mais le linter m'a embêté. Quand on aura monté de version de "n" on aura peut-être moyen de faire mieux en revertant ce commit.

const result = imageElementSchema.validate(getImageSample());

// Then
expect(result.error).to.equal(undefined, result.error?.details.map((error) => error.message).join('. '));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En regardant de plus près avec @mariannebost et @mirawlin, nous voyons pas vraiment l'intérêt de nommer l'erreur :
Voici les erreurs pour chaque expect :

expect(result.error).to.equal(undefined, result.error?.details.map((error) => error.message).join('. '));
  // AssertionError: "alt" is required: expected ValidationError: "alt" is required { …(2) } to equal undefined
expect(result.error).to.equal(undefined);
    // AssertionError: expected ValidationError: "alt" is required { …(2) } to equal undefined
expect(result.error).to.be.undefined;
    // AssertionError: expected ValidationError: "alt" is required { …(2) } to be undefined

Comme cela complexifie vachement la lecture des expects : il faut savoir que le deuxième paramètre est un override de l'erreur, et que result.error?.details.map((error) => error.message).join('. ') a pour but d'afficher toutes les erreurs du schéma. Nous proposons plutôt de rester simple avec :

Suggested change
expect(result.error).to.equal(undefined, result.error?.details.map((error) => error.message).join('. '));
expect(result.error).to.be.undefined;

Copy link
Member Author

@yannbertrand yannbertrand Feb 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pour info c'est un copié collé de ce qui est fait côté module-datasource_test.

Chaud pour voir ensemble comment faire mieux !

@pix-service-auto-merge pix-service-auto-merge merged commit 83fa5d6 into dev Feb 19, 2024
6 of 7 checks passed
@pix-service-auto-merge pix-service-auto-merge deleted the PIX-11270-modulix-elements-generator branch February 19, 2024 11:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants