MovieGender.spec.ts
2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import type { Genre } from "~/interfaces/movie";
import { mount } from "@vue/test-utils";
// #region --Import--.
import { describe, expect, it } from "vitest";
import MovieGender from "../../components/details/MovieGender.vue";
// #endregion
describe("movieGender", () => {
it("affiche correctement les genres", () => {
// Données de test.
const genres: Genre[] = [
{ id: 1, name: "Action" },
{ id: 2, name: "Comédie" },
{ id: 3, name: "Drame" },
];
// Monter le composant avec sa props.
const wrapper = mount(MovieGender, {
props: {
genres,
},
});
// Vérifier que tous les genres sont affichés.
const spanElements = wrapper.findAll("span");
// spanElements.length doit être égal aux données de test (genres.length).
expect(spanElements.length).toBe(genres.length);
// Vérifier le contenu affiché de chaque élément.
spanElements.forEach((spanElement, index) => {
// Sur chaque itération d'élément (span), vérification que le nom du genre correspondant soit bien affiché.
expect(spanElement.text()).toContain(genres[index].name);
expect(spanElement.text()).toBe(genres[index].name);
});
});
it("affiche correctement un seul genre", () => {
// Données de test.
const genres: Genre[] = [{ id: 1, name: "Horreur" }];
// Monter le composant avec sa props.
const wrapper = mount(MovieGender, {
props: {
genres,
},
});
// Vérifier que le genre soit affiché.
const spanElements = wrapper.findAll("span");
// spanElements.length doit être égal aux données de test (ici 1).
expect(spanElements.length).toBe(genres.length);
// Vérifier le contenu affiché de l'élément.
expect(spanElements[0].text()).toContain(genres[0].name);
expect(spanElements[0].text()).toBe(genres[0].name);
});
it("ne rend aucun élément span quand la liste est vide", () => {
// Données de test volontairement vide.
const genres: Genre[] = [];
// Monter le composant avec sa props.
const wrapper = mount(MovieGender, {
props: {
genres,
},
});
// spanElements.length doit être égal à 0.
const spanElements = wrapper.findAll("span");
expect(spanElements.length).toBe(0);
});
});