effective_test_bot 1.1.19 → 1.1.24

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: 116adaca4228be8533d337f92a96fcdf4d28fddc776a150fe559b8eb4281beb3
4
- data.tar.gz: af5084bcea6618b5d6406f83f9af3fb7987bafc833589f21859104020012bb6a
3
+ metadata.gz: eccff959a9793ba3408242d0ce772d74ffec74b5e814052ee6ee27086d934491
4
+ data.tar.gz: 631e4aca51755e878e549edc85547297bd630c199996b0a67ca34f36ed215e75
5
5
  SHA512:
6
- metadata.gz: 69040edaa53da1a219372d6bfbd355c6b9aa691e18b71aa8c3d4fc6b9eb8e0864590b67b1ba8731097e0f5b6ef2b3c0459bf25019651c95797f759e22651fa91
7
- data.tar.gz: d9158385fed96c09559d4e0954d1e5a274556789ab61cd2c09310892444beb17a4430a4bc9e448694d3fc8eb3da741d7f36f653f537c45e650a9ad433a76c31d
6
+ metadata.gz: db5b468dbb02f65c4e2050a77168c1559f30ec12e6d2f046a014e1a815b78450a93d3816956f3500b969fb8ec5cb6e0065f1040eef4649f4a7be780f4e1930cd
7
+ data.tar.gz: 7c997a7afa4c1875a44e32c4f8de06713f589d6b5e3a51ffa3e3a04c8c37b999d3d24feadae466d1d2f170e93be3666c1f4448f1f9d7ab5d6167a3c53c4227d1
@@ -66,7 +66,7 @@ module EffectiveTestBot
66
66
  end
67
67
 
68
68
  def self.gifs?
69
- image_processing_class.present?
69
+ screenshots? && image_processing_class.present?
70
70
  end
71
71
 
72
72
  def self.image_processing_class
@@ -97,7 +97,7 @@ module EffectiveTestBot
97
97
  if ENV['TOUR'].present?
98
98
  ENV['TOUR'].to_s != 'false'
99
99
  else
100
- screenshots? && (tour_mode != false)
100
+ gifs? && (tour_mode != false)
101
101
  end
102
102
  end
103
103
 
@@ -106,7 +106,7 @@ module EffectiveTestBot
106
106
  if ENV['TOUR'].present?
107
107
  ['extreme', 'debug'].include?(ENV['TOUR'].to_s.downcase)
108
108
  else
109
- screenshots? && ['extreme', 'debug'].include?(tour_mode.to_s)
109
+ gifs? && ['extreme', 'debug'].include?(tour_mode.to_s)
110
110
  end
111
111
  end
112
112
 
@@ -2,10 +2,17 @@ module EffectiveTestBot
2
2
  class Engine < ::Rails::Engine
3
3
  engine_name 'effective_test_bot'
4
4
 
5
- config.autoload_paths += Dir["#{config.root}/test/test_botable/", "#{config.root}/test/concerns/", "#{config.root}/test/support/"]
6
- # config.autoload_paths += Dir["#{config.root}/test/test_botable/**/"]
7
- # config.autoload_paths += Dir["#{config.root}/test/concerns/**/"]
8
- # config.autoload_paths += Dir["#{config.root}/test/support/**/"]
5
+ config.autoload_paths += Dir[
6
+ "#{config.root}/test/test_botable/",
7
+ "#{config.root}/test/concerns/",
8
+ "#{config.root}/test/support/"
9
+ ]
10
+
11
+ config.eager_load_paths += Dir[
12
+ "#{config.root}/test/test_botable/",
13
+ "#{config.root}/test/concerns/",
14
+ "#{config.root}/test/support/"
15
+ ]
9
16
 
10
17
  # Set up our default configuration options.
11
18
  initializer 'effective_test_bot.defaults', before: :load_config_initializers do |app|
@@ -1,3 +1,3 @@
1
1
  module EffectiveTestBot
2
- VERSION = '1.1.19'.freeze
2
+ VERSION = '1.1.24'.freeze
3
3
  end
@@ -218,7 +218,15 @@ module EffectiveTestBotAssertions
218
218
  # assert_email :new_user_sign_up
219
219
  # assert_email :new_user_sign_up, to: 'newuser@example.com'
220
220
  # assert_email from: 'admin@example.com'
221
- def assert_email(action = nil, to: nil, from: nil, subject: nil, body: nil, message: nil)
221
+ def assert_email(action = nil, to: nil, from: nil, subject: nil, body: nil, message: nil, &block)
222
+ if block_given?
223
+ before = ActionMailer::Base.deliveries.length
224
+ yield
225
+ after = ActionMailer::Base.deliveries.length
226
+
227
+ assert (after - before == 1), "(assert_email) Expected one email to have been delivered"
228
+ end
229
+
222
230
  if (action || to || from || subject || body).nil?
223
231
  assert ActionMailer::Base.deliveries.present?, message || "(assert_email) Expected email to have been delivered"
224
232
  return
@@ -5,6 +5,8 @@ require 'faker'
5
5
  module EffectiveTestBotFormFaker
6
6
  DIGITS = ('1'..'9').to_a
7
7
  LETTERS = %w(A B C E G H J K L M N P R S T V X Y) # valid letters of a canadian postal code, eh?
8
+ TRUE_VALUES = [true, 1, '1', 't', 'T', 'true', 'TRUE', 'on', 'ON']
9
+ FALSE_VALUES = [false, 0, '0', 'f', 'F', 'false', 'FALSE', 'off', 'OFF']
8
10
 
9
11
  # Generates an appropriately pseudo-random value for the given field
10
12
  # Pass in a Hash of fills to define pre-selected values
@@ -269,19 +271,11 @@ module EffectiveTestBotFormFaker
269
271
  end
270
272
 
271
273
  def truthy?(value)
272
- if defined?(::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES) # Rails 5
273
- ::ActiveRecord::ConnectionAdapters::Column::TRUE_VALUES.include?(value)
274
- else
275
- ActiveRecord::Type::Boolean.new.cast(value)
276
- end
274
+ TRUE_VALUES.include?(value)
277
275
  end
278
276
 
279
277
  def falsey?(value)
280
- if defined?(::ActiveRecord::ConnectionAdapters::Column::FALSE_VALUES) # Rails 5
281
- ::ActiveRecord::ConnectionAdapters::Column::FALSE_VALUES.include?(value)
282
- else
283
- ::ActiveRecord::Type::Boolean.new.cast(value) == false
284
- end
278
+ FALSE_VALUES.include?(value)
285
279
  end
286
280
 
287
281
  end
@@ -19,7 +19,8 @@ module EffectiveTestBotFormFiller
19
19
  active_tab = all("li.active > a[data-toggle='tab']", wait: false).first
20
20
 
21
21
  tab_content = if active_tab && active_tab['href'].present?
22
- find('div' + active_tab['href']).find(:xpath, '..')
22
+ tab_href = '#' + active_tab['href'].split('#').last
23
+ find('div' + tab_href).find(:xpath, '..')
23
24
  end
24
25
 
25
26
  excluding_fields_with_parent(tab_content) { fill_form_fields(fills) }
@@ -129,6 +130,7 @@ module EffectiveTestBotFormFiller
129
130
  @filled_country_fields = nil
130
131
 
131
132
  save_test_bot_screenshot
133
+ true
132
134
  end
133
135
 
134
136
  def fill_input_text(field, value)
@@ -44,13 +44,14 @@ module EffectiveTestBotFormHelper
44
44
  true
45
45
  end
46
46
 
47
- def fill_stripe(mm: '01')
47
+ # Fills in the Stripe Elements form
48
+ def fill_stripe(card_number: '4242 4242 4242 4242', mm: '01')
48
49
  stripe_iframe = find("iframe[src^='https://js.stripe.com/v3']")
49
50
  assert stripe_iframe.present?, 'unable to find stripe iframe'
50
51
 
51
52
  within_frame(stripe_iframe) do
52
- fill_in('Card number', with: '4242424242424242')
53
- fill_in('MM / YY', with: mm.to_s + (Time.zone.now.year + 1).to_s.last(2))
53
+ card_number.to_s.chars.each { |key| find_field('Card number').send_keys(key) }
54
+ fill_in('MM / YY', with: mm.to_s + (Time.zone.now.year + 2).to_s.last(2))
54
55
  fill_in('CVC', with: '123')
55
56
  fill_in('ZIP', with: '90210')
56
57
  end
@@ -7,17 +7,15 @@ module EffectiveTestBotScreenshotsHelper
7
7
  end
8
8
 
9
9
  def save_test_bot_screenshot
10
- return unless EffectiveTestBot.screenshots?
10
+ return unless EffectiveTestBot.gifs?
11
11
  return unless page.current_path.present?
12
-
12
+
13
13
  page.save_screenshot("#{current_test_temp_path}/#{current_test_screenshot_id}.png")
14
14
  true
15
15
  end
16
16
 
17
17
  def save_test_bot_failure_gif
18
- return unless EffectiveTestBot.screenshots?
19
18
  return unless EffectiveTestBot.gifs?
20
-
21
19
  return unless save_test_bot_screenshot
22
20
 
23
21
  Dir.mkdir(current_test_failure_path) unless File.exist?(current_test_failure_path)
@@ -28,7 +26,6 @@ module EffectiveTestBotScreenshotsHelper
28
26
  end
29
27
 
30
28
  def save_test_bot_tour_gif
31
- return unless EffectiveTestBot.screenshots?
32
29
  return unless EffectiveTestBot.gifs?
33
30
  return unless (@test_bot_screenshot_id || 0) > 0
34
31
 
@@ -42,9 +39,12 @@ module EffectiveTestBotScreenshotsHelper
42
39
  def without_screenshots(&block)
43
40
  original = EffectiveTestBot.screenshots
44
41
 
45
- EffectiveTestBot.screenshots = false
46
- yield
47
- EffectiveTestBot.screenshots = original
42
+ begin
43
+ EffectiveTestBot.screenshots = false
44
+ yield
45
+ ensure
46
+ EffectiveTestBot.screenshots = original
47
+ end
48
48
  end
49
49
 
50
50
  protected
@@ -24,7 +24,7 @@ module WizardTest
24
24
  # to click the last submit button on the page
25
25
  last = (paths[index-1] == page.current_path)
26
26
 
27
- fills = (defined?(:fills) && respond_to?(:fills)) ? fills : {}
27
+ fills = (defined?(:fills) && respond_to?(:fills)) ? self.fills : {}
28
28
 
29
29
  if defined?(within_form) && respond_to?(:within_form)
30
30
  within(within_form) { fill_form(fills); submit_form(last: last); }
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.19
4
+ version: 1.1.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-07 00:00:00.000000000 Z
11
+ date: 2020-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -175,7 +175,7 @@ homepage: https://github.com/code-and-effect/effective_test_bot
175
175
  licenses:
176
176
  - MIT
177
177
  metadata: {}
178
- post_install_message:
178
+ post_install_message:
179
179
  rdoc_options: []
180
180
  require_paths:
181
181
  - lib
@@ -190,8 +190,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  - !ruby/object:Gem::Version
191
191
  version: '0'
192
192
  requirements: []
193
- rubygems_version: 3.0.3
194
- signing_key:
193
+ rubygems_version: 3.1.2
194
+ signing_key:
195
195
  specification_version: 4
196
196
  summary: A shared library of rails model & system tests that should pass in every
197
197
  Rails application.