Skip to content

Commit

Permalink
FEATURE: create & modify viewpoints (see Hypertopic#69,Hypertopic#92,H…
Browse files Browse the repository at this point in the history
…ypertopic#58)

Co-Authored-By: ZHANG Yi <yi.zhang2@utt.fr>
Co-Authored-By: TRAN Quoc Nhat Han <quoc_nhat_han.tran@utt.fr>
Co-Authored-By: Caroline <caroline.dequidt@worldonline.fr>
  • Loading branch information
4 people committed Jun 13, 2018
1 parent 42d756a commit 00cb6ad
Show file tree
Hide file tree
Showing 8 changed files with 357 additions and 242 deletions.
25 changes: 25 additions & 0 deletions features/create_viewpoint.feature
@@ -0,0 +1,25 @@
#language: fr

Fonctionnalité: Créer un point de vue

Soit un nouveau nom de point de vue généré

Scénario: Accéder à la page de création de point de vue
Soit l'utilisateur ouvre la page d'accueil du site
Quand l'utilisateur crée un nouveau point de vue
Alors la page de point de vue s'ouvre
Et la page de point de vue contient un champ de texte dans le titre
Et la page de point de vue contient un bouton homepage

Scénario: Créer un point de vue

Soit l'utilisateur ouvre la page de création de nouveau point de vue
Quand l'utilisateur entre le nom de point de vue
Alors le champ de texte disparaît
Et le titre de page devient le nom de point de vue

Scénario: Visualiser le point de vue créé

Soit l'utilisateur ouvre la page de création de nouveau point de vue
Quand l'utilisateur revient au portfolio
Alors le portfolio contient le nom de point de vue
77 changes: 77 additions & 0 deletions features/step_definitions/viewpoint.rb
@@ -0,0 +1,77 @@
require 'capybara/cucumber'
require 'selenium/webdriver'

Capybara.run_server = false
Capybara.default_driver = :selenium_chrome_headless
Capybara.app_host = "http://localhost:3000"
Capybara.default_max_wait_time = 10

def id()
s = [*'a'..'z', *'A'..'Z', *'0'..'9'].shuffle[0, 8].join
end

def clickOnNewViewpointCreatorButton
find(".ViewpointCreator a").click
end

viewpoint = "test" + id()

viewpointTextField = ".App h1 input[type='text']"
viewpointHeader = ".App h1"
buttonReturn = "button.Return"

# Conditions

Soit("l'utilisateur ouvre la page d'accueil du site") do
visit "/"
end

Soit("un nouveau nom de point de vue généré") do
true
end

Soit("l'utilisateur ouvre la page de création de nouveau point de vue") do
visit "/"
clickOnNewViewpointCreatorButton()
end

# Events

Quand("l'utilisateur crée un nouveau point de vue") do
clickOnNewViewpointCreatorButton()
end

Quand("l'utilisateur entre le nom de point de vue") do
find(:css, viewpointTextField).set(viewpoint)
find(:css, viewpointTextField).native.send_keys(:return)
end

# Outcomes

Alors("la page de point de vue s'ouvre") do
expect(page).to have_current_path(/\/viewpoint\/\w+/)
end

Alors("la page de point de vue contient un champ de texte dans le titre") do
expect(page).to have_css(viewpointTextField)
end

Alors("la page de point de vue contient un bouton homepage") do
expect(page).to have_css(buttonReturn)
end

Alors("le champ de texte disparaît") do
expect(page).not_to have_css(viewpointTextField)
end

Alors("le titre de page devient le nom de point de vue") do
expect(page).to have_selector(viewpointHeader, text: /#{viewpoint}/i)
end

Quand("l'utilisateur revient au portfolio") do
find(buttonReturn).click
end

Alors("le portfolio contient le nom de point de vue") do
expect(page).to have_content(viewpoint)
end
8 changes: 6 additions & 2 deletions package.json
Expand Up @@ -3,13 +3,17 @@
"version": "0.1.0",
"private": true,
"dependencies": {
"classnames": "^2.2.6",
"deep-equal": "^1.0.1",
"hypertopic": "^3.1.2",
"js-tree": "^2.0.1",
"json-groupby": "^1.0.2",
"query-string": "^4.3.4",
"react": "^15.5.4",
"react": "^16.4.0",
"react-autosuggest": "^9.3.4",
"react-dom": "^15.5.4",
"react-dom": "^16.4.0",
"react-router-dom": "^4.1.1",
"react-ui-tree-porphyry": "^1.0.3",
"sort-by": "^1.2.0"
},
"devDependencies": {
Expand Down

0 comments on commit 00cb6ad

Please sign in to comment.