effective_test_bot 1.1.31 → 1.1.36

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
  SHA256:
3
- metadata.gz: a03f1fb6d9966112b23b0258b97b01170f21b814306e326a8e090addb7ff64cd
4
- data.tar.gz: 228fe00102bf6f801aac88425f6588faec7777243881c83723f23ff9ea6b3625
3
+ metadata.gz: 8b48d94a0636a8e399c6d2d70e26f5cc49e2071e34b8a81be179dc3334c52c9b
4
+ data.tar.gz: 4dbfa94a3c171506de7dcd51af8b7999573ab3017ef3984ffdf53e9530f731a0
5
5
  SHA512:
6
- metadata.gz: bd26c1a23b70d3c5285df2d0925c1eb10651f696d338f9a0e1c68244392920c2ab6514f9718266503fdc2a30832356052e39336f73571cbdbd12028317151f98
7
- data.tar.gz: d139f4e47695a057a318384d572a7eeda6e27816debc92b18c07c8a94399c0427e983cba19c863e3947f78af9a1bb97d1a2758019d3589a7c2ed90cab5d5e244
6
+ metadata.gz: fd447674df972509839eefcefa0cd04b9d10e058fe236dceabf6dc340f8df9ed50fe439177d15b8367b1966071c66c7ac60237bbd15ae1a58a19a29bd961c9e6
7
+ data.tar.gz: 2446921073f5b4b4be0f893f026cdc9526070f951cf4005fc145bf9c5ce3f7910a03f98efd98b3a4672887e7087db16373100693b271fa3c07f9faf5230bb0af
@@ -58,10 +58,10 @@ module EffectiveTestBotControllerHelper
58
58
  case object
59
59
  when ActiveRecord::Base
60
60
  assigns[key] = object.attributes
61
- assigns[key][:errors] = object.errors.messages.delete_if { |_, v| v.blank? } if object.errors.present?
61
+ assigns[key][:errors] = object.errors.messages.select { |_, v| v.present? } if object.errors.present?
62
62
  when (ActiveModel::Model rescue nil)
63
63
  assigns[key] = object.respond_to?(:attributes) ? object.attributes : { present_but_not_serialized: true }
64
- assigns[key][:errors] = object.errors.messages.delete_if { |_, v| v.blank? } if object.errors.present?
64
+ assigns[key][:errors] = object.errors.messages.select { |_, v| v.present? } if object.errors.present?
65
65
  when TrueClass, FalseClass, NilClass, String, Symbol, Numeric
66
66
  assigns[key] = object
67
67
  else
@@ -1,3 +1,3 @@
1
1
  module EffectiveTestBot
2
- VERSION = '1.1.31'.freeze
2
+ VERSION = '1.1.36'.freeze
3
3
  end
@@ -217,16 +217,34 @@ module EffectiveTestBotAssertions
217
217
  assert diff.blank?, "(assert_no_email) #{diff.length} unexpected emails delivered: #{diff}"
218
218
  end
219
219
 
220
+ # assert_effective_log { click_on('download.txt') }
221
+ def assert_effective_log(status: nil)
222
+ raise('EffectiveLogging is not defined') unless defined?(EffectiveLogging)
223
+ raise('expected a block') unless block_given?
224
+
225
+ logs = (status.present? ? Effective::Log.where(status: status).all : Effective::Log.all)
226
+
227
+ before = logs.count
228
+ yield
229
+ after = logs.count
230
+
231
+ assert (after - before == 1), "(assert_effective_log) Expected one log to have been created"
232
+ end
233
+
220
234
  # assert_email :new_user_sign_up
221
235
  # assert_email :new_user_sign_up, to: 'newuser@example.com'
222
236
  # assert_email from: 'admin@example.com'
223
- def assert_email(action = nil, to: nil, from: nil, subject: nil, body: nil, message: nil, &block)
237
+ def assert_email(action = nil, to: nil, from: nil, subject: nil, body: nil, message: nil, count: nil, &block)
224
238
  if block_given?
225
239
  before = ActionMailer::Base.deliveries.length
226
240
  yield
227
- after = ActionMailer::Base.deliveries.length
241
+ difference = (ActionMailer::Base.deliveries.length - before)
228
242
 
229
- assert (after - before == 1), "(assert_email) Expected one email to have been delivered"
243
+ if count.present?
244
+ assert (difference == count), "(assert_email) Expected #{count} email to have been delivered, but #{difference} were instead"
245
+ else
246
+ assert (difference > 0), "(assert_email) Expected at least one email to have been delivered"
247
+ end
230
248
  end
231
249
 
232
250
  if (action || to || from || subject || body).nil?
@@ -37,7 +37,7 @@ module EffectiveTestBotFormFiller
37
37
  save_test_bot_screenshot
38
38
 
39
39
  tab_href = '#' + tab['href'].to_s.split('#').last
40
- within('div' + tab_href) { fill_form_fields(fills) }
40
+ within_if('div' + tab_href) { fill_form_fields(fills) }
41
41
  end
42
42
 
43
43
  # If there is no visible submits, go back to the first tab
@@ -193,8 +193,23 @@ module EffectiveTestBotFormFiller
193
193
  save_test_bot_screenshot
194
194
  end
195
195
 
196
- if field.all('option:enabled', wait: false).length > 0 && value != :unselect
197
- Array(value).each do |value|
196
+ if value == :unselect
197
+ return close_effective_select(field)
198
+ end
199
+
200
+ if field.all('option:enabled', wait: false).length == 0
201
+ return close_effective_select(field)
202
+ end
203
+
204
+ # Must be some options
205
+ Array(value).each do |value|
206
+ option = field.all("option:enabled[value=\"#{value}\"]", wait: false).first
207
+ option ||= field.all('option:enabled', wait: false).find { |field| field.text == value }
208
+
209
+ if option.present?
210
+ option.select_option
211
+ else
212
+ # This will most likely raise an error that it cant be found
198
213
  field.select(value.to_s, match: :first, disabled: false)
199
214
  end
200
215
  end
@@ -10,8 +10,8 @@ module EffectiveTestBotLoginHelper
10
10
  # This is currently hardcoded to use the warden login_as test helper
11
11
  def sign_in(user)
12
12
  if user.kind_of?(String)
13
- login_as(User.find_by_email!(user))
14
- elsif user.kind_of?(User)
13
+ login_as(devise_user_class.find_by_email!(user))
14
+ elsif user.kind_of?(devise_user_class)
15
15
  raise 'user must be persisted' unless user.persisted?
16
16
  user.reload
17
17
  login_as(user)
@@ -28,7 +28,7 @@ module EffectiveTestBotLoginHelper
28
28
  end
29
29
 
30
30
  def sign_in_manually(user_or_email, password = nil)
31
- visit new_user_session_path
31
+ visit (respond_to?(:new_user_session_path) ? new_user_session_path : '/users/sign_in')
32
32
 
33
33
  email = (user_or_email.respond_to?(:email) ? user_or_email.email : user_or_email)
34
34
  username = (user_or_email.respond_to?(:username) ? user_or_email.username : user_or_email)
@@ -41,18 +41,23 @@ module EffectiveTestBotLoginHelper
41
41
  end
42
42
 
43
43
  def sign_up(email: Faker::Internet.email, password: Faker::Internet.password, **options)
44
- visit new_user_registration_path
44
+ visit (respond_to?(:new_user_registration_path) ? new_user_registration_path : '/users/sign_up')
45
45
 
46
46
  within('form#new_user') do
47
47
  fill_form({email: email, password: password, password_confirmation: password}.merge(options))
48
48
  submit_novalidate_form
49
49
  end
50
50
 
51
- User.find_by_email(email)
51
+ devise_user_class.find_by_email(email)
52
52
  end
53
53
 
54
54
  def current_user
55
- User.where(id: assigns['current_user']['id']).first if (assigns['current_user'] && assigns['current_user']['id'])
55
+ return nil unless (assigns['current_user'] && assigns['current_user']['id'])
56
+ devise_user_class.where(id: assigns['current_user']['id']).first
57
+ end
58
+
59
+ def devise_user_class
60
+ User
56
61
  end
57
62
 
58
63
  end
@@ -57,7 +57,7 @@ module EffectiveTestBotTestHelper
57
57
 
58
58
  # Calls capybara within do .. end if selector is present and bool is true
59
59
  def within_if(selector, bool = true, &block)
60
- (selector.present? && bool) ? within(first(selector)) { yield } : yield
60
+ (all(selector).length > 0 && bool) ? within(first(selector)) { yield } : yield
61
61
  end
62
62
 
63
63
  def within_each(selector, &block)
@@ -73,7 +73,8 @@ module EffectiveTestBotTestHelper
73
73
  end
74
74
 
75
75
  def effective_bootstrap_custom_data_confirm?
76
- (page.evaluate_script('$.rails.effective_bootstrap_custom_data_confirm') rescue nil) == true
76
+ (page.evaluate_script('$.rails.effective_bootstrap_custom_data_confirm') rescue nil) ||
77
+ (page.evaluate_script('window.Rails.effective_bootstrap_custom_data_confirm') rescue nil)
77
78
  end
78
79
 
79
80
  # EffectiveTestBot includes an after_filter on ApplicationController to set an http header
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: 1.1.31
4
+ version: 1.1.36
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: 2020-11-13 00:00:00.000000000 Z
11
+ date: 2021-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails