agilibox 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/app/assets/stylesheets/agilibox/actions.sass +2 -0
- data/app/assets/stylesheets/agilibox/all.sass +3 -0
- data/app/assets/stylesheets/agilibox/buttons.sass +3 -0
- data/app/assets/stylesheets/agilibox/forms.sass +10 -0
- data/app/assets/stylesheets/agilibox/icons.sass +5 -0
- data/app/assets/stylesheets/agilibox/pagination.sass +7 -0
- data/app/assets/stylesheets/agilibox/tables.sass +26 -0
- data/lib/agilibox/cucumber_config.rb +5 -1
- data/lib/agilibox/cucumber_helpers/common_steps.rb +135 -0
- data/lib/agilibox/cucumber_helpers/select2.rb +16 -3
- data/lib/agilibox/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6816dbbaf43c1bd973d1509d85bb41b39e7180e419d38bf0e598b8dbc299693e
|
4
|
+
data.tar.gz: 591b5df80fd7381038bf77c4c2b98d78aee43fb630e82d0465cb0862dccbfc5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45ce47dab3e6a3fd8bb849b26606ac0bfaf32c3e577433b5934b8f487476774a3df8b21840db4066bd79c6b4c7bd00b1439aa0b9a9535757a39d29e241f9873a
|
7
|
+
data.tar.gz: 7ab726e1fffb09a10956bacdfabb28486ae2275cbd5730433d45d1e38d163a1cbd5a3b1204ce5e453ee48608ee6c4168950c6a26d12be51adbd944ae4b2f28b0
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
+
@import agilibox/actions
|
1
2
|
@import agilibox/buttons
|
2
3
|
@import agilibox/filters
|
3
4
|
@import agilibox/flash
|
4
5
|
@import agilibox/forms
|
6
|
+
@import agilibox/icons
|
5
7
|
@import agilibox/modals
|
6
8
|
@import agilibox/pagination
|
7
9
|
@import agilibox/print
|
10
|
+
@import agilibox/tables
|
@@ -0,0 +1,26 @@
|
|
1
|
+
table.default
|
2
|
+
@extend .table
|
3
|
+
@extend .table-bordered
|
4
|
+
@extend .table-hover
|
5
|
+
|
6
|
+
th.actions,
|
7
|
+
td.actions,
|
8
|
+
width: 5em
|
9
|
+
white-space: nowrap
|
10
|
+
text-align: center
|
11
|
+
|
12
|
+
th
|
13
|
+
text-align: center
|
14
|
+
vertical-align: middle !important
|
15
|
+
|
16
|
+
td[class*="date"]
|
17
|
+
width: 8em
|
18
|
+
text-align: center
|
19
|
+
|
20
|
+
td[class*="count"],
|
21
|
+
width: 1em
|
22
|
+
text-align: center
|
23
|
+
|
24
|
+
td[class*="total"],
|
25
|
+
td[class*="amount"],
|
26
|
+
text-align: right
|
@@ -25,7 +25,7 @@ class << Agilibox::CucumberConfig = Class.new
|
|
25
25
|
|
26
26
|
def require_all_helpers!
|
27
27
|
files = Dir.glob Agilibox::Engine.root.join("lib", "agilibox", "cucumber_helpers", "*.rb")
|
28
|
-
files.delete_if { |f| f.match?(/poltergeist|chrome/) }
|
28
|
+
files.delete_if { |f| f.match?(/poltergeist|chrome|_steps/) }
|
29
29
|
files.each { |file| require file }
|
30
30
|
end
|
31
31
|
|
@@ -36,4 +36,8 @@ class << Agilibox::CucumberConfig = Class.new
|
|
36
36
|
def require_chrome_headless!
|
37
37
|
require Agilibox::Engine.root.join("lib", "agilibox", "cucumber_helpers", "chrome_headless.rb")
|
38
38
|
end
|
39
|
+
|
40
|
+
def require_common_steps!
|
41
|
+
require Agilibox::Engine.root.join("lib", "agilibox", "cucumber_helpers", "common_steps.rb")
|
42
|
+
end
|
39
43
|
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
# Clicks
|
2
|
+
|
3
|
+
When("I click on {string}") do |text|
|
4
|
+
click_on text
|
5
|
+
end
|
6
|
+
|
7
|
+
When("I click on first {string}") do |text|
|
8
|
+
expect(page).to have_content(text)
|
9
|
+
all("a, button, label", text: text).first.click
|
10
|
+
end
|
11
|
+
|
12
|
+
When("I click on last {string}") do |text|
|
13
|
+
expect(page).to have_content(text)
|
14
|
+
all("a, button, label", text: text).last.click
|
15
|
+
end
|
16
|
+
|
17
|
+
When("I click on {string} element") do |selector|
|
18
|
+
find(selector).click
|
19
|
+
end
|
20
|
+
|
21
|
+
When("I click on first {string} element") do |selector|
|
22
|
+
expect(page).to have_selector(selector)
|
23
|
+
all(selector).first.click
|
24
|
+
end
|
25
|
+
|
26
|
+
When("I click on last {string} element") do |selector|
|
27
|
+
expect(page).to have_selector(selector)
|
28
|
+
all(selector).last.click
|
29
|
+
end
|
30
|
+
|
31
|
+
# Routes
|
32
|
+
|
33
|
+
When("I go on the {string} page") do |route_name|
|
34
|
+
path = main_app.public_send("#{route_name}_path")
|
35
|
+
visit path
|
36
|
+
end
|
37
|
+
|
38
|
+
Then("I am on the {string} page") do |route_name|
|
39
|
+
path = main_app.public_send("#{route_name}_path")
|
40
|
+
wait_for { current_path }.to eq path
|
41
|
+
end
|
42
|
+
|
43
|
+
# Contents
|
44
|
+
|
45
|
+
Then("I see {string}") do |text|
|
46
|
+
expect(page).to have_content(text)
|
47
|
+
end
|
48
|
+
|
49
|
+
Then("I do not see {string}") do |text|
|
50
|
+
expect(page).to have_no_content(text)
|
51
|
+
end
|
52
|
+
|
53
|
+
Then("I see {string} element") do |selector|
|
54
|
+
expect(page).to have_selector(selector)
|
55
|
+
end
|
56
|
+
|
57
|
+
Then("I do not see {string} element") do |selector|
|
58
|
+
expect(page).to have_no_selector(selector)
|
59
|
+
end
|
60
|
+
|
61
|
+
Then("I see {int} times {string} element") do |count, selector|
|
62
|
+
expect(page).to have_selector(selector, count: count)
|
63
|
+
end
|
64
|
+
|
65
|
+
Then("I see {string} in modal") do |text|
|
66
|
+
expect(find("#modal")).to have_content(text)
|
67
|
+
end
|
68
|
+
|
69
|
+
Then("I see {string} element in modal") do |selector|
|
70
|
+
expect(find("#modal")).to have_selector(selector)
|
71
|
+
end
|
72
|
+
|
73
|
+
Then("I see {string} out of modal") do |text|
|
74
|
+
expect(page).to have_no_selector("#modal")
|
75
|
+
expect(page).to have_content(text)
|
76
|
+
end
|
77
|
+
|
78
|
+
Then("I see {string} element out of modal") do |selector|
|
79
|
+
expect(page).to have_no_selector("#modal")
|
80
|
+
expect(page).to have_selector(selector)
|
81
|
+
end
|
82
|
+
|
83
|
+
# Forms
|
84
|
+
|
85
|
+
When("I fill in {string} with {string}") do |id, value|
|
86
|
+
fill_in id, with: value
|
87
|
+
end
|
88
|
+
|
89
|
+
When("I select {string}") do |value|
|
90
|
+
select value
|
91
|
+
end
|
92
|
+
|
93
|
+
When("I select {string} from {string}") do |value, from|
|
94
|
+
select value, from: from
|
95
|
+
end
|
96
|
+
|
97
|
+
When(/^I select2 "([^"]*)" from "([^"]*)"$/) do |value, selector|
|
98
|
+
select2(selector, value)
|
99
|
+
end
|
100
|
+
|
101
|
+
When("I fill in {string} with {string} file") do |id, file|
|
102
|
+
expect(page).to have_selector(".form-group.file", visible: :all)
|
103
|
+
|
104
|
+
evaluate_script %(
|
105
|
+
$(".form-group.file").css("display", "block")
|
106
|
+
)
|
107
|
+
|
108
|
+
attach_file id, Rails.root.join("spec", "fixtures", file)
|
109
|
+
end
|
110
|
+
|
111
|
+
When("I search {string}") do |q|
|
112
|
+
fill_in :q, with: q
|
113
|
+
find(".search-submit").click
|
114
|
+
end
|
115
|
+
|
116
|
+
# Emails
|
117
|
+
|
118
|
+
Given("I clean my mailbox") do
|
119
|
+
email_deliveries.clear
|
120
|
+
end
|
121
|
+
|
122
|
+
Then(/I have (\d+) emails?/) do |count|
|
123
|
+
expect(email_deliveries.count).to eq count
|
124
|
+
end
|
125
|
+
|
126
|
+
# Factories
|
127
|
+
|
128
|
+
Given("an existing {string}") do |factory|
|
129
|
+
instance_variable_set "@#{factory}", create(factory)
|
130
|
+
end
|
131
|
+
|
132
|
+
Given("I am a signed in {string}") do |factory|
|
133
|
+
@user = create(factory) # rubocop:disable Rails/SaveBang
|
134
|
+
sign_in @user
|
135
|
+
end
|
@@ -1,10 +1,23 @@
|
|
1
1
|
module CapybaraSelect2
|
2
|
-
def
|
3
|
-
|
4
|
-
find("#{selector} + .select2-container").click
|
2
|
+
def select2_search(id, query)
|
3
|
+
find("##{id} + .select2-container").click
|
5
4
|
find(".select2-search__field").set(query.to_s)
|
5
|
+
end
|
6
|
+
|
7
|
+
def select2(id, query, label = query)
|
8
|
+
select2_search(id, query)
|
6
9
|
find(".select2-results li", text: label.to_s).click
|
7
10
|
end
|
11
|
+
|
12
|
+
def select2_expect_have_result(id, query, label = query)
|
13
|
+
select2_search(id, query)
|
14
|
+
expect(page).to have_selector(".select2-results li", text: label.to_s)
|
15
|
+
end
|
16
|
+
|
17
|
+
def select2_expect_have_no_result(id, query, label = query)
|
18
|
+
select2_search(id, query)
|
19
|
+
expect(page).to have_no_selector(".select2-results li", text: label.to_s)
|
20
|
+
end
|
8
21
|
end
|
9
22
|
|
10
23
|
World(CapybaraSelect2)
|
data/lib/agilibox/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: agilibox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- agilidée
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails-i18n
|
@@ -70,14 +70,17 @@ files:
|
|
70
70
|
- app/assets/javascripts/agilibox/form_anchor_referer.coffee
|
71
71
|
- app/assets/javascripts/agilibox/form_reset.coffee
|
72
72
|
- app/assets/javascripts/agilibox/modals.coffee
|
73
|
+
- app/assets/stylesheets/agilibox/actions.sass
|
73
74
|
- app/assets/stylesheets/agilibox/all.sass
|
74
75
|
- app/assets/stylesheets/agilibox/buttons.sass
|
75
76
|
- app/assets/stylesheets/agilibox/filters.sass
|
76
77
|
- app/assets/stylesheets/agilibox/flash.sass
|
77
78
|
- app/assets/stylesheets/agilibox/forms.sass
|
79
|
+
- app/assets/stylesheets/agilibox/icons.sass
|
78
80
|
- app/assets/stylesheets/agilibox/modals.sass
|
79
81
|
- app/assets/stylesheets/agilibox/pagination.sass
|
80
82
|
- app/assets/stylesheets/agilibox/print.sass
|
83
|
+
- app/assets/stylesheets/agilibox/tables.sass
|
81
84
|
- app/controllers/agilibox/application_controller.rb
|
82
85
|
- app/controllers/agilibox/small_data/filters_controller.rb
|
83
86
|
- app/controllers/concerns/agilibox/api_controller_concern.rb
|
@@ -167,6 +170,7 @@ files:
|
|
167
170
|
- lib/agilibox/cucumber_helpers/ajax.rb
|
168
171
|
- lib/agilibox/cucumber_helpers/capybara.rb
|
169
172
|
- lib/agilibox/cucumber_helpers/chrome_headless.rb
|
173
|
+
- lib/agilibox/cucumber_helpers/common_steps.rb
|
170
174
|
- lib/agilibox/cucumber_helpers/database_cleaner.rb
|
171
175
|
- lib/agilibox/cucumber_helpers/factory_bot.rb
|
172
176
|
- lib/agilibox/cucumber_helpers/fix_referrer.rb
|