Skip to content

Commit fded1ad

Browse files
RobinLallierAxelRagobert
authored andcommitted
TEST: Duplicate a portfolio (closes #190)
1 parent 8fc7b24 commit fded1ad

File tree

7 files changed

+64
-14
lines changed

7 files changed

+64
-14
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ source "https://rubygems.org"
22

33
gem "cucumber"
44
gem "cuprite"
5+
gem "rspec"
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#language: fr
2+
3+
Fonctionnalité: Dupliquer un portfolio pour un usage privé
4+
5+
Contexte:
6+
7+
Soit "vitraux" le portfolio ouvert
8+
Soit le point de vue "Histoire des religions" rattaché au portfolio "vitraux"
9+
Soit le corpus "Vitraux - Dr. Krieger" rattaché au portfolio "vitraux"
10+
11+
Scénario: Dupliquer un portfolio
12+
13+
Soit l'utilisateur est connecté
14+
Quand on créé une copie du portfolio appelée "undefined" avec le corpus "Vitraux - Dr. Krieger" et le point de vue "Histoire des religions"
15+
Alors le titre affiché est "undefined"
16+
Et un des corpus affichés est "Vitraux - Dr. Krieger"
17+
Et un des points de vue affichés est "Histoire des religions"

features/items_with_same_topic.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Scénario:
1414

1515
Soit "vitraux" le portfolio ouvert
1616
Soit "BSS 007" l'item affiché
17-
Quand on choisit la rubrique "Figuration du donateur"
17+
Quand on choisit la rubrique "Figuration du donateur" contenue dans la rubrique "Donateur"
1818
Alors le titre affiché est "VITRAUX"
1919
Et l'item "BSS 007" est affiché
2020
Et l'item "BSS 018" est affiché

features/step_definitions/portfolio.rb

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Capybara.run_server = false
55
Capybara.default_driver = :cuprite
66
Capybara.javascript_driver = :cuprite
7-
Capybara.app_host = "http://localhost:3000"
7+
Capybara.app_host = "http://vitraux.local:3000"
88
Capybara.default_max_wait_time = 10
99

1010
def getUUID(itemName)
@@ -48,6 +48,13 @@ def getUUID(itemName)
4848
# On the remote servers
4949
end
5050

51+
Soit("l'utilisateur est connecté") do
52+
find_link(href: '#login').click
53+
fill_in("Nom d'utilisateur", with: "alice")
54+
fill_in("Mot de passe", with: "whiterabbit")
55+
click_on('Confirmer')
56+
end
57+
5158
Soit("{string} le portfolio spécifié dans la configuration") do |portfolio|
5259
case portfolio
5360
when "vitraux"
@@ -106,10 +113,34 @@ def getUUID(itemName)
106113
click_on topic
107114
end
108115

116+
Quand("on choisit la rubrique {string} contenue dans la rubrique {string}") do |string, string2|
117+
click_on string
118+
click_on string2
119+
end
120+
109121
Quand("on choisit l'item {string}") do |item|
110122
click_on item
111123
end
112124

125+
def in_modal()
126+
f = find('.modal-content')
127+
end
128+
129+
Quand("on créé une copie du portfolio appelée {string} avec le corpus {string} et le point de vue {string}") do |name, corpus, viewpoint|
130+
case name
131+
when "undefined"
132+
pending "alternate configuration"
133+
else
134+
click_button('alice')
135+
click_link('Dupliquer')
136+
in_modal.fill_in('copyName', with: name)
137+
in_modal.check(corpus)
138+
in_modal.check(viewpoint)
139+
in_modal.click_on('Valider')
140+
in_modal.click_on('Confirmer')
141+
end
142+
end
143+
113144
# Outcomes
114145

115146
Alors("le titre affiché est {string}") do |portfolio|
@@ -139,4 +170,3 @@ def getUUID(itemName)
139170
Alors ("l'item {string} n'est pas affiché") do |item|
140171
expect(page).not_to have_content item
141172
end
142-

reverse-proxy/launcher.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sudo sed -i '/^127.0.0.1 localhost/ s/$/ vitraux.local dupp-vitraux.local/' /etc/hosts

src/components/Duplication/Duplicator.jsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ class Duplicator extends Component {
2323
this.closeToast = this.closeToast.bind(this)
2424
this.addUserToEntity = this.addUserToEntity.bind(this)
2525
}
26-
26+
2727
handleClose() {
2828
this.setState({ showModal: false, showModalConfirmation: false });
2929
}
30-
30+
3131
handleShow() {
3232
this.setState({ showModal: true });
3333
}
@@ -133,22 +133,22 @@ class Duplicator extends Component {
133133
})
134134
}
135135

136-
render() {
136+
render() {
137137
let name = this.props.userConnected + '-' + this.props.portfolio
138138
let corpora = this.props.corpora.map((v, i) =>
139139
<div className='Modal-Group' key={v.id}>
140-
<input className='Modal-CheckBox Corpus' value={v.id} onChange={this.onChangeCheckBox} type="checkbox"/>
140+
<input name={v.id} className='Modal-CheckBox Corpus' value={v.id} onChange={this.onChangeCheckBox} type="checkbox"/>
141141
{v.id}
142142
</div>
143143
);
144144

145145
let viewpoints = this.props.viewpoints.map((v, i) =>
146146
<div className='Modal-Group' key={v.id}>
147-
<input className='Modal-CheckBox ViewPoint' value={v.id} onChange={this.onChangeCheckBox} type="checkbox"/>
147+
<input name={v.name} className='Modal-CheckBox ViewPoint' value={v.id} onChange={this.onChangeCheckBox} type="checkbox"/>
148148
{v.name}
149149
</div>
150150
);
151-
151+
152152

153153
return (
154154
<div>
@@ -175,7 +175,7 @@ class Duplicator extends Component {
175175
<Modal show={this.state.showModal}>
176176
<Modal.Body>
177177
<h3>Nom du portfolio</h3>
178-
<input type='text' className='Modal-Input form-control' defaultValue={name} placeholder='Nom du nouveau portfolio' id="portfolioDuplicatedName"/>
178+
<input type='text' name="copyName" className='Modal-Input form-control' defaultValue={name} placeholder='Nom du nouveau portfolio' id="portfolioDuplicatedName"/>
179179
<div className='Modal-Group Modal-Title'>
180180
<h3>Corpus</h3>
181181
<div className='Modal-Group'><input className='Modal-CheckBox checkCorpora' type="checkbox" onChange={this.onChangeCheckBox}/>Tout</div>
@@ -187,7 +187,7 @@ class Duplicator extends Component {
187187
<br/>
188188
<div className='Modal-Group Modal-Title'>
189189
<h3>Points de vue</h3>
190-
<div className='Modal-Group'><input className='Modal-CheckBox checkViewPoints' type="checkbox" onChange={this.onChangeCheckBox}/>Tout</div>
190+
<div className='Modal-Group'><input className='Modal-CheckBox checkViewPoints' name={name} type="checkbox" onChange={this.onChangeCheckBox}/>Tout</div>
191191
</div>
192192
<hr/>
193193
<div id="viewPointsList">
@@ -205,7 +205,7 @@ class Duplicator extends Component {
205205
</Modal>
206206
<Dropdown.Item eventKey="2" onClick={this.handleShow}>Dupliquer</Dropdown.Item>
207207
</div>
208-
208+
209209
)
210210
}
211211
}

src/config/config.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
2+
"user": "vitraux",
23
"services": [
3-
"http://localhost",
4+
"http://argos2.test.hypertopic.org",
45
"http://steatite.hypertopic.org"
56
]
6-
}
7+
}

0 commit comments

Comments
 (0)