Skip to content

Commit b797e99

Browse files
committed
test(e2e): refactorisation des tests - utilisation de variables pour plusieurs fonctions (je demande "question" / le chatbot répond "réponse" / je clique sur le bouton "nomDuBouton")
1 parent 4060093 commit b797e99

4 files changed

Lines changed: 36 additions & 89 deletions

File tree

features/basic_interactions/click_on_choice_options_buttons.feature

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ Feature: Cliquer sur les boutons des options de choix
66
@chatbot-base
77
Scenario: Cliquer sur un bouton d'option de choix
88
Given Je lance ChatMD ""
9-
When Je clique sur un bouton d'option de choix après le message initial
10-
Then Le chatbot répond en fonction de l'option choisie
9+
When Je clique sur le bouton "Quels sont les usages possibles ?"
10+
Then Le chatbot répond "On peut imaginer de nombreux usages"
1111

1212
@chatbot-base @chatbot-philosophyDissertation
1313
Scenario: Cliquer sur une suite d'options de choix
1414
Given Je lance ChatMD "#dissertation-philo"
15-
When Je clique sur une suite d'options de choix
16-
Then Le chatbot répond en fonction de la suite d'options choisies
15+
And Je clique sur le bouton "Comment on organise son temps ?"
16+
And Je clique sur le bouton "Comment on rédige ?"
17+
When Je clique sur le bouton "Comment on rédige la conclusion ?"
18+
Then Le chatbot répond "Dans la conclusion, le but est simplement de retracer le cheminement parcouru."
Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
1-
@core @asUser @naturalLanguageQuestions
1+
@core @asUser @naturalLanguageQuestions
22
Feature: Poser des questions au chatbot en langage naturel
3-
On peut interagir avec ChatMD en lui posant des questions en langage naturel
4-
ChatMD peut trouver la bonne réponse qui correspond et répondre ainsi de manière pertinente
3+
On peut interagir avec ChatMD en lui posant des questions en langage naturel
4+
ChatMD peut trouver la bonne réponse qui correspond et répondre ainsi de manière pertinente
5+
6+
Scenario Outline: Questions sur des sujets couverts par le chatbot
7+
Given Je lance ChatMD "<source>"
8+
When Je demande "<question>"
9+
Then Le chatbot répond "<réponse>"
10+
11+
Examples:
12+
| source | question | réponse |
13+
| | quelle est la licence de ChatMD ? | Licence MIT |
14+
| #dissertation-philo | Puis-je utiliser un plan thèse antithèse synthèse ? | Ce n'est pas ce qu'il faut faire ! |
515

6-
@chatbot-base
7-
Scenario: Question sur la licence de ChatMD
8-
Given Je lance ChatMD ""
9-
When Je demande quelle licence ChatMD utilise
10-
Then Le chatbot répond que ChatMD est sous licence MIT
11-
12-
@chatbot-philosophyDissertation
13-
Scenario: Question sur la structure thèse-antithèse-synthèse dans une dissertation de philosophie
14-
Given Je lance ChatMD "#dissertation-philo"
15-
When Je demande si je peux utiliser une structure thèse-antithèse-synthèse
16-
Then Le chatbot explique que la structure thèse-antithèse-synthèse n'est pas appropriée pour une dissertation de philosophie
1716

18-
@chatbot-base
1917
Scenario: Question sur un sujet non couvert par le chatbot
2018
Given Je lance ChatMD ""
21-
When Je pose une question qui n'est pas dans la base de connaissances
19+
When Je demande "Qu'est-ce qu'un brachiosaure ?"
2220
Then Le chatbot répond qu'il ne peut pas répondre à cette question car il n'a pas l'information

tests/e2e/step_definitions/basic_interactions.js

Lines changed: 1 addition & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,10 @@ const { I } = inject();
22

33
import { config } from "../../../app/js/config.mjs";
44

5-
When("Je demande quelle licence ChatMD utilise", () => {
6-
I.askTheChatbot("quelle est la licence de ChatMD ?");
7-
});
8-
9-
Then("Le chatbot répond que ChatMD est sous licence MIT", () => {
10-
I.pressKey("Enter");
11-
I.waitForText("licence MIT", 10);
12-
});
13-
14-
When(
15-
"Je demande si je peux utiliser une structure thèse-antithèse-synthèse",
16-
() => {
17-
I.askTheChatbot("Puis-je utiliser un plan thèse antithèse synthèse ?");
18-
},
19-
);
20-
21-
Then(
22-
"Le chatbot explique que la structure thèse-antithèse-synthèse n'est pas appropriée pour une dissertation de philosophie",
23-
() => {
24-
I.waitForText("Ce n'est pas ce qu'il faut faire !", 10);
25-
},
26-
);
27-
285
Then("Le texte de présentation de ChatMD s'affiche d'un coup", () => {
296
I.waitForText("Qui a créé ChatMD ?", 1);
307
});
318

32-
When("Je pose une question qui n'est pas dans la base de connaissances", () => {
33-
I.askTheChatbot("Qu'est-ce qu'un bronchiosaure ?");
34-
});
35-
369
Then(
3710
"Le chatbot répond qu'il ne peut pas répondre à cette question car il n'a pas l'information",
3811
async () => {
@@ -50,45 +23,4 @@ Then(
5023
}
5124
},
5225
);
53-
54-
When(
55-
"Je clique sur un bouton d'option de choix après le message initial",
56-
() => {
57-
I.pressKey("Enter");
58-
I.waitForElement(".messageOptions li:first-child a", 0.5);
59-
I.click(".messageOptions li:first-child a");
60-
},
61-
);
62-
63-
Then("Le chatbot répond en fonction de l'option choisie", () => {
64-
I.pressKey("Enter");
65-
I.waitForText("On peut imaginer de nombreux usages", 10);
66-
});
67-
68-
When("Je clique sur une suite d'options de choix", () => {
69-
I.pressKey("Enter");
70-
I.waitForElement(".message .messageOptions li:first-child a", 3);
71-
I.click(".message .messageOptions li:first-child a");
72-
I.pressKey("Enter");
73-
74-
I.waitForElement(
75-
".message:nth-of-type(3) .messageOptions li:nth-child(2) a",
76-
3,
77-
);
78-
I.click(".message:nth-of-type(3) .messageOptions li:nth-child(2) a");
79-
I.pressKey("Enter");
80-
81-
I.waitForElement(
82-
".message:nth-of-type(5) .messageOptions li:nth-child(3) a",
83-
3,
84-
);
85-
I.click(".message:nth-of-type(5) .messageOptions li:nth-child(3) a");
86-
I.pressKey("Enter");
87-
});
88-
89-
Then("Le chatbot répond en fonction de la suite d'options choisies", () => {
90-
I.waitForText(
91-
"Dans la conclusion, le but est simplement de retracer le cheminement parcouru.",
92-
10,
93-
);
94-
});
26+
Given;

tests/e2e/step_definitions/commons.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,21 @@ Given("Je lance ChatMD {string}", async (hash) => {
55
I.loadAchatbot(src);
66
});
77

8+
When("Je demande {string}", async (question) => {
9+
I.askTheChatbot(question);
10+
});
11+
12+
Given("Je clique sur le bouton {string}", async (buttonText) => {
13+
I.pressKey("Enter");
14+
I.waitForText(buttonText, 10);
15+
I.click(locate(".messageOptions li a").withText(buttonText));
16+
});
17+
18+
Then("Le chatbot répond {string}", async (answer) => {
19+
I.pressKey("Enter");
20+
I.waitForText(answer, 10);
21+
});
22+
823
Given("J'appuie sur la touche Entrée", () => {
924
I.pressKey("Enter");
1025
});

0 commit comments

Comments
 (0)