Module: EffectiveTestBot
- Defined in:
- lib/effective_test_bot.rb,
lib/effective_test_bot/engine.rb,
lib/effective_test_bot/version.rb,
lib/generators/effective_test_bot/install_generator.rb
Defined Under Namespace
Modules: Generators
Classes: Engine
Constant Summary
collapse
- VERSION =
'0.4.7'.freeze
Class Method Summary
collapse
Class Method Details
.autosave_animated_gif_on_failure? ⇒ Boolean
52
53
54
|
# File 'lib/effective_test_bot.rb', line 52
def self.autosave_animated_gif_on_failure?
screenshots && autosave_animated_gif_on_failure
end
|
.excepts ⇒ Object
95
96
97
|
# File 'lib/effective_test_bot.rb', line 95
def self.excepts
@@excepts ||= flatten_and_sort(except)
end
|
.flatten_and_sort(skips) ⇒ Object
We need to flatten any Hashes into
'users#create_invalid' => ['assert_path', 'assert_page_title'],
into this
['users#create_invalid assert_path'
'users#create_invalid assert_page_title']
113
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/effective_test_bot.rb', line 113
def self.flatten_and_sort(skips)
Array(skips).flat_map do |skip|
case skip
when Symbol
skip.to_s
when Hash
skip.keys.product(skip.values.flatten).map { |p| p.join(' ') }
else
skip
end
end.compact.sort
end
|
.onlies ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
|
# File 'lib/effective_test_bot.rb', line 83
def self.onlies
@@onlines ||= begin
flatten_and_sort(
if ENV['TEST_BOT_TEST'].present?
ENV['TEST_BOT_TEST'].to_s.gsub('[', '').gsub(']', '').split(',').map { |str| str.strip }
else
only
end
)
end
end
|
.screenshots? ⇒ Boolean
If you call rake test:bot TOUR=false, then disable screenshots too
48
49
50
|
# File 'lib/effective_test_bot.rb', line 48
def self.screenshots?
screenshots == true
end
|
.setup {|_self| ... } ⇒ Object
14
15
16
|
# File 'lib/effective_test_bot.rb', line 14
def self.setup
yield self
end
|
.skip?(test, assertion = nil) ⇒ Boolean
Test could be something like "crud_test", "crud_test (documents#new)", "documents", documents#new"
Assertion will be page_title, or flash
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/effective_test_bot.rb', line 21
def self.skip?(test, assertion = nil)
return false if (test || assertion).blank?
test = test.to_s
assertion = assertion.to_s
if test.include?('_test: (') left = test.index('(') || -1
right = test.rindex(')') || (test.length+1)
test = test[(left+1)..(right-1)]
end
value = "#{test} #{assertion}".strip
return true if excepts.any? { |except| [test, assertion, value].include?(except) }
return true if onlies.present? && onlies.find { |only| test.start_with?(only) }.blank?
false end
|
.tour_mode? ⇒ Boolean
56
57
58
59
60
61
62
|
# File 'lib/effective_test_bot.rb', line 56
def self.tour_mode?
if ENV['TOUR'].present?
['true', 'verbose', 'debug'].include?(ENV['TOUR'].to_s.downcase)
else
screenshots && (tour_mode != false)
end
end
|
.tour_mode_extreme? ⇒ Boolean
form_filler will take a screenshot after every form field is filled
65
66
67
68
69
70
71
|
# File 'lib/effective_test_bot.rb', line 65
def self.tour_mode_extreme?
if ENV['TOUR'].present?
['extreme', 'debug'].include?(ENV['TOUR'].to_s.downcase)
else
screenshots && ['extreme', 'debug'].include?(tour_mode.to_s)
end
end
|
.tour_mode_verbose? ⇒ Boolean
73
74
75
76
77
78
79
|
# File 'lib/effective_test_bot.rb', line 73
def self.tour_mode_verbose?
if ENV['TOUR'].present?
['extreme', 'verbose', 'debug'].include?(ENV['TOUR'].to_s.downcase)
else
screenshots && ['extreme', 'verbose', 'debug'].include?(tour_mode.to_s)
end
end
|