Skip to content

Commit 7be27b9

Browse files
TEST: Reintroducing tests
* A user can register herself * A registered user can connect to the platform * A connected user can create a diary
1 parent 985ab04 commit 7be27b9

File tree

8 files changed

+169
-0
lines changed

8 files changed

+169
-0
lines changed

features/diary_create.feature

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#language : fr
2+
3+
Fonctionnalité: Créer un journal
4+
5+
Scénario: créer un journal
6+
7+
Soit l'analyste est identifié
8+
Quand l'analyste crée un journal
9+
Alors le journal "essai " est créé

features/enter.feature

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#language: fr
2+
3+
Fonctionnalité: Entrer
4+
5+
Scénario: à partir de la page d'accueil
6+
7+
Soit un navigateur sur la page d'accueil
8+
Quand l'analyste clique sur "Journal pour l'analyse qualitative"
9+
Alors le titre "Journaux de bord" est affiché
10+
Et le bouton "S'identifier" est affiché
11+
Et le bouton "Créer un compte" est affiché
12+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
Soit("un navigateur sur la page d'accueil") do
3+
visit "/"
4+
end
5+
6+
Soit("la page des journaux de bord") do
7+
visit "/memo/"
8+
end
9+
10+
Soit("l'analyste est identifié") do
11+
visit "/memo/"
12+
click_on "S'identifier"
13+
expect(page).to have_content("S'identifier")
14+
fill_in placeholder: 'Identifiant', with: "[email protected]"
15+
fill_in placeholder: 'Mot de passe', with: "Ep0nge"
16+
click_on "S'identifier"
17+
expect(page).to have_content "Se déconnecter"
18+
end
19+
20+
Soit("une page comportant le bouton {string}") do |btn|
21+
expect(page).to have_content btn
22+
end
23+

features/step_definitions/event.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
Quand("l'analyste entre") do
2+
visit "/memo/"
3+
end
4+
5+
Quand("l'analyste clique sur {string}") do |lien|
6+
click_on lien
7+
end
8+
9+
Quand("l'analyste souhaite s'identifier en tant que {string} avec le mot de passe {string}") do |login, password|
10+
click_on "S'identifier"
11+
expect(page).to have_content("S'identifier")
12+
fill_in placeholder: 'Identifiant', with: login
13+
fill_in placeholder: 'Mot de passe', with: password
14+
click_on "S'identifier"
15+
end
16+
17+
Quand("{string} souhaite créer un compte en tant que {string} avec le mot de passe {string}") do |fullname, login, password|
18+
click_on "Créer un compte"
19+
expect(page).to have_content("Je ne fais pas partie de l'université de Liège")
20+
find("#newaccount").click
21+
expect(page).to have_content("Nom complet (prénom et nom de famille)")
22+
range = [*'0'..'9',*'A'..'F']
23+
hash = Array.new(36){ range.sample }.join
24+
fill_in placeholder: 'Jack London', with: 'test'+ hash + fullname
25+
fill_in placeholder: '[email protected]', with: login + hash
26+
fill_in "password", with: password
27+
fill_in "confirm", with: password
28+
click_on "Créer un compte"
29+
click_on "Journaux de bord"
30+
end
31+
32+
33+
Quand("l'analyste crée un journal") do
34+
visit "/memo/"
35+
numbers = [*'0'..'9']
36+
cardinal = Array.new(3){ numbers.sample }.join
37+
today_date = Date.today.strftime('%Y-%m-%d')
38+
diary_name = 'essai ' + today_date + cardinal
39+
fill_in placeholder: 'Mon journal de bord', with: diary_name
40+
click_on "Créer..."
41+
click_on "Enregistrer"
42+
expect(page).to have_content("Ajouter un ancrage")
43+
visit "/memo/"
44+
expect(page).to have_content(diary_name)
45+
end
46+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
Alors ("le bouton {string} est affiché") do |btn|
2+
expect(page).to have_content btn
3+
end
4+
5+
Alors ("le titre {string} est affiché") do |title|
6+
expect(page).to have_content title
7+
end
8+
9+
10+
Alors("l'analyste {string} est connecté") do |user|
11+
expect(page).to have_content user
12+
expect(page).to have_content "Se déconnecter"
13+
end
14+
15+
Alors("l'analyste {string} n'est pas connecté") do |user|
16+
expect(page).to have_content "S'identifier"
17+
end
18+
19+
Alors("le journal {string} est créé") do |diary_name|
20+
new_diary_name = "tentative réussie du "+ Date.today.strftime('%Y-%m-%d')
21+
visit "/memo/"
22+
click_on diary_name+Date.today.strftime('%Y-%m-%d')
23+
page.find("h1").click
24+
fill_in 'name', with: new_diary_name
25+
click_on "Enregistrer"
26+
visit "/memo/"
27+
expect(page).to have_content(new_diary_name)
28+
end

features/support/env.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
require 'capybara/cucumber'
2+
require 'capybara/cuprite'
3+
4+
Before do
5+
Capybara.current_session.driver.add_headers("Accept-Language" => "fr")
6+
end
7+
Capybara.run_server = false
8+
Capybara.default_driver = :cuprite
9+
Capybara.javascript_driver = :cuprite
10+
Capybara.app_host = ENV["APP_HOST"] || "http://localhost:3000"
11+
Capybara.default_max_wait_time = 10
12+
Capybara.register_driver(:cuprite) do |app|
13+
Capybara::Cuprite::Driver.new(app,
14+
browser_options: { 'no-sandbox': nil },
15+
timeout: 30
16+
)
17+
end

features/user_connect.feature

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#language : fr
2+
3+
Fonctionnalité: S'identifier
4+
5+
Scénario: avec un mot de passe correct
6+
7+
Soit la page des journaux de bord
8+
Quand l'analyste souhaite s'identifier en tant que "[email protected]" avec le mot de passe "Ep0nge"
9+
Alors l'analyste est connecté
10+
Et le bouton "Créer..." est affiché
11+
12+
Scénario: avec un mot de passe erroné
13+
14+
Soit la page des journaux de bord
15+
Quand l'analyste souhaite s'identifier en tant que "[email protected]" avec le mot de passe "Eponge"
16+
Alors l'analyste n'est pas connecté

features/user_register.feature

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#language : fr
2+
3+
Fonctionnalité: Créer un compte
4+
5+
Scénario: se rendre au bon endroit
6+
7+
Soit la page des journaux de bord
8+
Quand l'analyste clique sur "Créer un compte"
9+
Alors le titre "Créer un compte" est affiché
10+
Et le bouton "Je fais partie de l'université de Liège" est affiché
11+
Et le bouton "Je ne fais pas partie de l'université de Liège" est affiché
12+
13+
Scénario: créer un compte
14+
15+
Soit la page des journaux de bord
16+
Quand "Robert Testeur" souhaite créer un compte en tant que "bob" avec le mot de passe "bricoleur"
17+
Alors l'analyste est connecté
18+

0 commit comments

Comments
 (0)