effective_test_bot 1.2.0 → 1.2.5
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd91036d4b959a1a59934248064b1c42b6bb6e9cf8558b6809b9621fc67aed76
|
4
|
+
data.tar.gz: e5bba54a9961847859d1e02963442d4065e75308336a97609eeb351ac9ab671c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 574c821e54abc360af9b1f4f11990b8db8f06685a5c25f096621e8933e34a77829134ae9e06eb5836b171d9ba90a34289e7718566986cdd254af7097b0a1f628
|
7
|
+
data.tar.gz: 6b3f2fd19df1a688cb2fb1bcfa79a2f7c3baf0a5832fdf80796cc1c7cec842314eb99ad03a64d922ce22f8a5d56795ff8f235d27d05675aa7b7988c9e811573d
|
data/lib/effective_test_bot.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
module EffectiveTestBotAssertions
|
2
|
+
|
2
3
|
def assert_page_content(content, message: "(page_content) Expected page content :content: to be present")
|
3
4
|
assert page.has_text?(/#{Regexp.escape(content)}/i, wait: 0), message.sub(':content:', content)
|
4
5
|
end
|
@@ -210,35 +211,43 @@ module EffectiveTestBotAssertions
|
|
210
211
|
|
211
212
|
def assert_no_email(&block)
|
212
213
|
before = ActionMailer::Base.deliveries.map { |mail| {to: mail.to, subject: mail.subject} }
|
213
|
-
yield
|
214
|
+
retval = yield
|
214
215
|
after = ActionMailer::Base.deliveries.map { |mail| {to: mail.to, subject: mail.subject} }
|
215
216
|
|
216
217
|
diff = (after - before)
|
217
218
|
|
218
219
|
assert diff.blank?, "(assert_no_email) #{diff.length} unexpected emails delivered: #{diff}"
|
220
|
+
retval
|
219
221
|
end
|
220
222
|
|
221
223
|
# assert_effective_log { click_on('download.txt') }
|
222
|
-
def assert_effective_log(status: nil)
|
224
|
+
def assert_effective_log(status: nil, &block)
|
223
225
|
raise('EffectiveLogging is not defined') unless defined?(EffectiveLogging)
|
224
226
|
raise('expected a block') unless block_given?
|
225
227
|
|
226
228
|
logs = (status.present? ? Effective::Log.where(status: status).all : Effective::Log.all)
|
227
229
|
|
228
230
|
before = logs.count
|
229
|
-
yield
|
231
|
+
retval = yield
|
230
232
|
after = logs.count
|
231
233
|
|
232
234
|
assert (after - before == 1), "(assert_effective_log) Expected one log to have been created"
|
235
|
+
retval
|
233
236
|
end
|
234
237
|
|
238
|
+
#include ActiveJob::TestHelper if defined?(ActiveJob::TestHelper)
|
239
|
+
|
235
240
|
# assert_email :new_user_sign_up
|
236
241
|
# assert_email :new_user_sign_up, to: 'newuser@example.com'
|
237
242
|
# assert_email from: 'admin@example.com'
|
238
|
-
def assert_email(action = nil, to: nil, from: nil, subject: nil, body: nil, message: nil, count: nil, &block)
|
243
|
+
def assert_email(action = nil, perform: nil, to: nil, from: nil, subject: nil, body: nil, message: nil, count: nil, &block)
|
244
|
+
retval = nil
|
245
|
+
|
239
246
|
if block_given?
|
240
247
|
before = ActionMailer::Base.deliveries.length
|
241
|
-
|
248
|
+
perform_enqueued_jobs if perform && respond_to?(:perform_enqueued_jobs)
|
249
|
+
retval = yield
|
250
|
+
|
242
251
|
difference = (ActionMailer::Base.deliveries.length - before)
|
243
252
|
|
244
253
|
if count.present?
|
@@ -246,11 +255,13 @@ module EffectiveTestBotAssertions
|
|
246
255
|
else
|
247
256
|
assert (difference > 0), "(assert_email) Expected at least one email to have been delivered"
|
248
257
|
end
|
258
|
+
else
|
259
|
+
perform_enqueued_jobs if perform && respond_to?(:perform_enqueued_jobs)
|
249
260
|
end
|
250
261
|
|
251
262
|
if (action || to || from || subject || body).nil?
|
252
263
|
assert ActionMailer::Base.deliveries.present?, message || "(assert_email) Expected email to have been delivered"
|
253
|
-
return
|
264
|
+
return retval
|
254
265
|
end
|
255
266
|
|
256
267
|
actions = ActionMailer::Base.instance_variable_get(:@mailer_actions)
|
@@ -264,7 +275,7 @@ module EffectiveTestBotAssertions
|
|
264
275
|
matches &&= (message.subject == subject) if subject
|
265
276
|
matches &&= (message.body == body) if body
|
266
277
|
|
267
|
-
return if matches
|
278
|
+
return retval if matches
|
268
279
|
end
|
269
280
|
|
270
281
|
expected = [
|
@@ -9,7 +9,7 @@ module EffectiveTestBotFormFiller
|
|
9
9
|
tabs = all("a[data-toggle='tab']", wait: false)
|
10
10
|
|
11
11
|
# If there's only 1 tab, just fill it out
|
12
|
-
|
12
|
+
return fill_form_fields(fills) unless tabs.length > 1
|
13
13
|
|
14
14
|
# If there's more than one tab:
|
15
15
|
# We first fill in all fields that are outside of the tab-content
|
@@ -50,9 +50,10 @@ module EffectiveTestBotFormFiller
|
|
50
50
|
|
51
51
|
# Only fills in visible fields
|
52
52
|
# fill_form(:email => 'somethign@soneone.com', :password => 'blahblah', 'user.last_name' => 'hlwerewr')
|
53
|
-
def fill_form_fields(fills = {}
|
53
|
+
def fill_form_fields(fills = {})
|
54
54
|
save_test_bot_screenshot
|
55
55
|
|
56
|
+
debug = fills.delete(:debug)
|
56
57
|
seen = {}
|
57
58
|
|
58
59
|
5.times do
|
@@ -68,6 +68,18 @@ module EffectiveTestBotTestHelper
|
|
68
68
|
Array(all(selector).first).each { |field| within(field) { yield } }
|
69
69
|
end
|
70
70
|
|
71
|
+
def within_tab(name, &block)
|
72
|
+
first("a.nav-link#tab-#{name.parameterize}").click
|
73
|
+
within_first("div.tab-pane##{name.parameterize}") { yield }
|
74
|
+
end
|
75
|
+
|
76
|
+
def with_time_travel(date, &block)
|
77
|
+
Timecop.travel(date)
|
78
|
+
retval = yield
|
79
|
+
Timecop.return
|
80
|
+
retval
|
81
|
+
end
|
82
|
+
|
71
83
|
def click_first(label)
|
72
84
|
click_link(label, match: :first)
|
73
85
|
end
|
@@ -98,7 +110,7 @@ module EffectiveTestBotTestHelper
|
|
98
110
|
end
|
99
111
|
|
100
112
|
def current_user_assigns_class
|
101
|
-
current_user_assigns_key.sub('current_').gsub('_', '::').classify.safe_constantize
|
113
|
+
current_user_assigns_key.sub('current_', '').gsub('_', '::').classify.safe_constantize
|
102
114
|
end
|
103
115
|
|
104
116
|
def access_denied_exception
|
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.2.
|
4
|
+
version: 1.2.5
|
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: 2021-
|
11
|
+
date: 2021-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: timecop
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
description: A shared library of rails model & system tests that should pass in every
|
126
140
|
Rails application.
|
127
141
|
email:
|