profcfuhrmanets / log210-enonce-lab0

Laboratoire d'introduction aux technologies utilisées en LOG210
MIT License
0 stars 4 forks source link

Test pour le bouton redemarrer échoue toujours, car l'énoncé ne donne pas la même façon de faire #41

Closed elainesoucy closed 2 years ago

elainesoucy commented 2 years ago

Dans le fichier test/public-lib/main-lab0.test.ts on a le test suivant : it("devrait utiliser fetch pour le bouton redémarrer", () => { expect(content.includes("redemarrer.addEventListener(\"click\", function () {")).toBeTruthy(); expect(content.includes("fetch(\"/api/v1/jeu/redemarrerJeu\", {")).toBeTruthy(); });

Cela est problématique, car dans l'énoncé, on donne les lignes suivantes à ajouter dans main.js : document.getElementById("redemarrer").addEventListener("click", function () { fetch("/api/v1/jeu/redemarrerJeu") .then(function() { location.reload(); }); });

Les corrections à apporter qui permettent de faire passer les tests sont :

it("devrait utiliser fetch pour le bouton redémarrer", () => { expect(content.includes('document.getElementById(\"redemarrer\").addEventListener(\"click\", function ()')).toBeTruthy(); expect(content.includes('fetch(\"/api/v1/jeu/redemarrerJeu\")')).toBeTruthy(); });

fuhrmanator commented 2 years ago

C'est dommage -- j'avais changé ce test sur ma copie de solutionnaire, mais le changement ne s'est pas rendu dans le GitHub:

describe('public/lib/main.js', () => {
  it("devrait utiliser fetch pour le bouton redémarrer", () => {
    expect(content.includes(`document.getElementById("redemarrer").addEventListener("click", function () {`)).toBeTruthy();
    expect(content.includes(`fetch("/api/v1/jeu/redemarrerJeu")`)).toBeTruthy();
  });
});
elainesoucy commented 2 years ago

Après un essaie, pour que ces deux tests passent, il faut ajouter les \ et enlever le { du premier test :

 it("devrait utiliser fetch pour le bouton redémarrer", () => {
    expect(content.includes('document.getElementById(\"redemarrer\").addEventListener(\"click\", function ()')).toBeTruthy();
    expect(content.includes('fetch(\"/api/v1/jeu/redemarrerJeu\")')).toBeTruthy();
  });
fuhrmanator commented 2 years ago

Attention aux apostrophes (backticks) et les strings en forme de template literal.

fuhrmanator commented 2 years ago

La version actuelle de l'énoncé propose:

document.getElementById("redemarrer").addEventListener("click", function () {
    fetch("/api/v1/jeu/redemarrerJeu")
    .then(function()
    {
        location.reload();
    });
});

Je crois que le test va passer (en tout cas, ça passe sur ma machine).