ScoreAndVote.spec.ts 2.97 KB
import { mount } from "@vue/test-utils";
// #region --Import--.
import { describe, expect, it } from "vitest";
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 paragrapheElement = wrapper.find("p");
    expect(paragrapheElement.text()).toBe("Note TMDB");
  });

  it("affiche correctement le nombre de vote sans formatage si inférieur à 1000", () => {
    // Monter le composant avec ses props.
    const wrapper = mount(ScoreAndVote, {
      props: {
        score: 7.654,
        nbVote: 855,
      },
    });
    // Trouver l'élément qui contient le nombre de votes.
    const voteElement = wrapper.find("div");
    // Vérifier si la div contient le nombre.
    expect(voteElement.text()).toContain("855");
    // Vérifier si le texte de la div correspond exactement.
    expect(voteElement.text()).toBe("855 votes");
  });

  it("affiche correctement le nombre de vote formaté en 'k' si supérieur ou égal à 1000", () => {
    // Monter le composant avec ses props.
    const wrapper = mount(ScoreAndVote, {
      props: {
        score: 9,
        nbVote: 1477,
      },
    });
    // Trouver l'élément qui contient le nombre de votes.
    const voteElement = wrapper.find("div");
    // Vérifier si la div contient le nombre.
    expect(voteElement.text()).toContain("1.5");
    // Vérifier si le texte de la div correspond exactement.
    expect(voteElement.text()).toBe("1.5k votes");
  });
});