effective_test_bot 0.4.5 → 0.4.6
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b7f79228e53f919d49e05e1c4664c154e8852f1
|
4
|
+
data.tar.gz: 23d86e7bffe2f127072aa2a27254e2420305526d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 001cada50f2fe9ad01c38607d7a42ac40176cb69dc09897e5874c50819c9e28ef51bdda5759455db13e722219dec2a13db1f6ee4d8dd75cdf5ef36c98ac49496
|
7
|
+
data.tar.gz: e0639c6e7c1a233ac3e98dab49290814cffe7d8668173d683bc2a64c04ecb63264377510ad92bd3c630de6c72b75958ad123286b4ef7fecf8127bb972d6013c2
|
@@ -33,6 +33,7 @@ module EffectiveTestBotFormFiller
|
|
33
33
|
tab.click()
|
34
34
|
synchronize!
|
35
35
|
save_test_bot_screenshot
|
36
|
+
@shared_max_fields = nil # Reset value_for_input_numeric_field() history
|
36
37
|
|
37
38
|
within('div' + tab['href']) { fill_form_fields(fills) }
|
38
39
|
end
|
@@ -116,6 +117,8 @@ module EffectiveTestBotFormFiller
|
|
116
117
|
else
|
117
118
|
Faker::Date.backward(365).strftime('%Y-%m-%d %H:%m')
|
118
119
|
end
|
120
|
+
elsif classes.include?('numeric')
|
121
|
+
value_for_input_numeric_field(field, "input.numeric[name$='[#{attribute}]']")
|
119
122
|
elsif classes.include?('email') || attribute.include?('email')
|
120
123
|
Faker::Internet.email
|
121
124
|
elsif classes.include?('price') # effective_form_inputs price
|
@@ -156,10 +159,7 @@ module EffectiveTestBotFormFiller
|
|
156
159
|
|
157
160
|
field.all('option:enabled').select { |option| option.value.present? }.sample.try(:text) || '' # Don't select an empty option
|
158
161
|
when 'input_number'
|
159
|
-
|
160
|
-
max = (Float(field['max']) rescue 1000)
|
161
|
-
number = Random.new.rand(min..max)
|
162
|
-
number.kind_of?(Float) ? number.round(2) : number
|
162
|
+
value_for_input_numeric_field(field, "input[type='number'][name$='[#{attribute}]']")
|
163
163
|
when 'input_email'
|
164
164
|
Faker::Internet.email
|
165
165
|
when 'input_password'
|
@@ -181,6 +181,35 @@ module EffectiveTestBotFormFiller
|
|
181
181
|
end
|
182
182
|
end
|
183
183
|
|
184
|
+
def value_for_input_numeric_field(field, selector)
|
185
|
+
min = (Float(field['min']) rescue 0)
|
186
|
+
max = (Float(field['max']) rescue 1000)
|
187
|
+
number = Random.new.rand(min..max)
|
188
|
+
number = (number.kind_of?(Float) ? number.round(2) : number)
|
189
|
+
|
190
|
+
return number if field['max'].blank?
|
191
|
+
|
192
|
+
shared_max_fields = all(selector)
|
193
|
+
return number if shared_max_fields.length <= 1
|
194
|
+
|
195
|
+
# So there's definitely 2+ fields that share the same max, named the same
|
196
|
+
# We want the total value of all these fields to add upto the max single max value
|
197
|
+
@shared_max_fields ||= {}
|
198
|
+
@shared_max_fields[selector] ||= max
|
199
|
+
|
200
|
+
available = @shared_max_fields[selector]
|
201
|
+
|
202
|
+
amount = if max.kind_of?(Float)
|
203
|
+
(((max * 1000.0) / shared_max_fields.length.to_f).ceil() / 1000.0).round(2)
|
204
|
+
else
|
205
|
+
(max / shared_max_fields.length.to_f).ceil
|
206
|
+
end
|
207
|
+
amount = [[amount, min].max, available].min
|
208
|
+
|
209
|
+
@shared_max_fields[selector] = (available - amount)
|
210
|
+
amount
|
211
|
+
end
|
212
|
+
|
184
213
|
# The field here is going to be the %input{:type => file}. Files can be one or more pathnames
|
185
214
|
# http://stackoverflow.com/questions/5188240/using-selenium-to-imitate-dragging-a-file-onto-an-upload-element/11203629#11203629
|
186
215
|
def upload_effective_asset(field, files)
|
@@ -7,7 +7,7 @@ module EffectiveTestBotScreenshotsHelper
|
|
7
7
|
def save_test_bot_screenshot
|
8
8
|
return unless EffectiveTestBot.screenshots? && defined?(current_test)
|
9
9
|
|
10
|
-
full_path = current_test_temp_path +
|
10
|
+
full_path = current_test_temp_path + "/#{current_test_screenshot_id}.png"
|
11
11
|
page.save_screenshot(full_path)
|
12
12
|
end
|
13
13
|
|
@@ -101,11 +101,11 @@ module EffectiveTestBotScreenshotsHelper
|
|
101
101
|
# current_test_failure_path: destination for .gifs of failing tests
|
102
102
|
|
103
103
|
def current_test_temp_path
|
104
|
-
@_current_test_temp_path ||=
|
104
|
+
@_current_test_temp_path ||= "#{Rails.root}/tmp/test_bot/#{current_test || 'none'}"
|
105
105
|
end
|
106
106
|
|
107
107
|
def current_test_failure_path
|
108
|
-
|
108
|
+
"#{Rails.root}/tmp/test_bot"
|
109
109
|
end
|
110
110
|
|
111
111
|
def current_test_failure_filename
|
@@ -115,11 +115,11 @@ module EffectiveTestBotScreenshotsHelper
|
|
115
115
|
|
116
116
|
# Where the tour animated gif ends up
|
117
117
|
def current_test_tour_path
|
118
|
-
|
118
|
+
"#{Rails.root}/test/tours"
|
119
119
|
end
|
120
120
|
|
121
121
|
def current_test_tour_filename
|
122
|
-
current_test
|
122
|
+
"#{current_test}.gif"
|
123
123
|
end
|
124
124
|
|
125
125
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_test_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|