ScoreAndVote.spec.ts 1.83 KB
//#region --Import--.
import { describe, expect, it } from "vitest";
import { mount } from "@vue/test-utils";
import ScoreAndVote from "../../components/details/ScoreAndVote.vue";
//#endregion

describe("ScoreAndVote", () => {
  it("affiche correctement le score", () => {
    // Monter le composant avec ses props.
    const wrapper = mount(ScoreAndVote, {
      props: {
        score: 7,
        nbVote: 100,
      },
    });
    // Trouver l'élément qui contient le score.
    const scoreElement = wrapper.find(".bg-primary");
    // Vérifier que le score est affiché correctement.
    expect(scoreElement.text()).contain("7");
  });

  it("affiche exactement le score avec une décimale", () => {
    // Monter le composant avec ses props.
    const wrapper = mount(ScoreAndVote, {
      props: {
        score: 8.5,
        nbVote: 100,
      },
    });
    // Trouver l'élément qui contient le score.
    const scoreElement = wrapper.find(".bg-primary");
    // Vérifier que le score est affiché correctement.
    expect(scoreElement.text()).toBe("8.5");
  });

  it("arrondit correctement le score à une décimale", () => {
    // Tester avec un score qui a plus d'une décimale.
    const wrapper = mount(ScoreAndVote, {
      props: {
        score: 7.654,
        nbVote: 100,
      },
    });
    // Trouver l'élément qui contient le score.
    const scoreElement = wrapper.find(".bg-primary");
    // Arrondi à une décimale.
    expect(scoreElement.text()).toBe("7.7");
  });

  it("affiche correctement le paragraphe", () => {
    // Monter le composant avec ses props.
    const wrapper = mount(ScoreAndVote, {
      props: {
        score: 7.654,
        nbVote: 100,
      },
    });
    // Trouver l'élément qui contient le paragraphe.
    const scoreElement = wrapper.find("p");
    expect(scoreElement.text()).toBe("Note TMDB");
  });
});