Add challenge feedback API
This commit is contained in:
+46
-2
@@ -1,7 +1,7 @@
|
||||
const assert = require("assert");
|
||||
const CookieCode = require("../dist/cookiecode.js");
|
||||
|
||||
CookieCode.configurer({ sortie: null, afficherNotions: true });
|
||||
CookieCode.configurer({ sortie: "test", afficherNotions: true });
|
||||
|
||||
const texteRecette = CookieCode.recette("Cookie au chocolat")
|
||||
.prendre("farine", 200, "g")
|
||||
@@ -48,6 +48,50 @@ assert.ok(!html.includes("<img src=x"));
|
||||
assert.ok(html.includes("<script>alert"));
|
||||
assert.ok(html.includes("<img src=x"));
|
||||
|
||||
assert.strictEqual(CookieCode.version, "0.1.0");
|
||||
const recetteDefi = CookieCode.recette("Cookie defi")
|
||||
.prendre("farine", 200, "g")
|
||||
.prendre("sucre", 100, "g")
|
||||
.prendre("chocolat", 150, "g")
|
||||
.ajouter("farine")
|
||||
.ajouter("sucre")
|
||||
.ajouter("chocolat")
|
||||
.melanger()
|
||||
.repeter(2, (recette) => {
|
||||
recette.melanger();
|
||||
})
|
||||
.cuire(12, "minutes")
|
||||
.servir();
|
||||
|
||||
const rapport = recetteDefi.analyser();
|
||||
assert.deepStrictEqual(rapport.ingredients, ["farine", "sucre", "chocolat"]);
|
||||
assert.ok(rapport.actions.includes("repeter"));
|
||||
assert.strictEqual(rapport.utiliseBoucle, true);
|
||||
assert.strictEqual(rapport.termineParServir, true);
|
||||
assert.deepStrictEqual(rapport.erreurs, []);
|
||||
|
||||
const defiCookie = CookieCode.defi("Cookie avec boucle", {
|
||||
ingredientsMinimum: 3,
|
||||
actionsObligatoires: ["melanger", "cuire", "servir"],
|
||||
boucleObligatoire: true,
|
||||
terminerParServir: true,
|
||||
interdireErreurs: true,
|
||||
});
|
||||
|
||||
const verification = CookieCode.verifier(recetteDefi, defiCookie);
|
||||
assert.strictEqual(verification.reussi, true);
|
||||
assert.match(verification.toText(), /Resultat : reussi/);
|
||||
assert.match(verification.toText(), /✅ Tu as utilise 3 ingredient\(s\)\./);
|
||||
|
||||
const recetteIncomplete = CookieCode.recette("Cookie incomplet")
|
||||
.prendre("farine", 200, "g")
|
||||
.melanger();
|
||||
|
||||
const verificationIncomplete = CookieCode.verifier(recetteIncomplete, defiCookie);
|
||||
assert.strictEqual(verificationIncomplete.reussi, false);
|
||||
assert.match(verificationIncomplete.toText(), /❌ Il faut au moins 3 ingredient\(s\)\./);
|
||||
assert.match(verificationIncomplete.toText(), /❌ Il manque une boucle : essaie avec \.repeter\(\)\./);
|
||||
assert.match(verificationIncomplete.toText(), /❌ Ta recette doit se terminer par \.servir\(\)\./);
|
||||
|
||||
assert.strictEqual(CookieCode.version, "0.2.0");
|
||||
|
||||
console.log("CookieCode tests: OK");
|
||||
|
||||
Reference in New Issue
Block a user