evil_systems 0.0.3 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -1
- data/README.md +7 -7
- data/lib/evil_systems/register_cuprite.rb +11 -1
- data/lib/evil_systems/remote_chrome.rb +2 -2
- data/lib/evil_systems/session_helpers.rb +0 -5
- data/lib/evil_systems/settings.rb +3 -0
- data/lib/evil_systems/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90357ce20a94e7b4c88e4ef6ceee54011abb09b2260e626fd4bf6dccd457e25a
|
4
|
+
data.tar.gz: 83edaa0449bea20e22edafdcaf9b44c262f9d6feea6d68b85fe8b6a30a2db391
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 353035e4a99107279789c22e6166bcc630479aa36515953a46b2e2767190763e663bc8071869162bedd9e42abb87e38df5750ff46c15fb4d8f0438fd880afbf4
|
7
|
+
data.tar.gz: ae4472a0e9ebb755fba01d587dbbc54d979ca893a19bc7c90f7ced39a3ee5bad82d38af5637ceb819fec70f4ce5863be70208a48d619f65236f747e8c5b80293
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
-
## 0.
|
1
|
+
## 0.1.3
|
2
|
+
|
3
|
+
- Add Slowmo option
|
4
|
+
|
5
|
+
## 0.1.1
|
6
|
+
|
7
|
+
- Fix readme issue
|
8
|
+
- Remove mark_all_banners_as_read
|
9
|
+
- Remove selenium-webdriver
|
10
|
+
|
11
|
+
## 0.1.0
|
12
|
+
|
13
|
+
- Allow the Cuprite driver to be configured with ENV variables for headless mode and process_timeouts.
|
14
|
+
- Increase process_timeout default to 5
|
15
|
+
- Add GH actions testing with a remote chrome instance
|
16
|
+
- Minor API cleanup
|
17
|
+
|
18
|
+
## 0.0.3
|
2
19
|
|
3
20
|
Initial release!
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
I write tests using Minitest and routinely reference [EvilMartians System
|
4
4
|
of a Test blog post](https://evilmartians.com/chronicles/system-of-a-test-setting-up-end-to-end-rails-testing)
|
5
|
-
for
|
5
|
+
for best practices for system tests. In this blog post,
|
6
6
|
they also have an opinionated way of setting up System Tests.
|
7
7
|
|
8
8
|
`EvilSystems` offers 3 distinct advantages over the setup provided by
|
@@ -28,7 +28,7 @@ https://rdoc.info/github/paramagicdev/evil_systems/main
|
|
28
28
|
```ruby
|
29
29
|
# Gemfile
|
30
30
|
group :test do
|
31
|
-
gem '
|
31
|
+
gem 'evil_systems', '~> 0.1.0'
|
32
32
|
end
|
33
33
|
```
|
34
34
|
|
@@ -37,8 +37,8 @@ Make sure the following 3 gems are in your `Gemfile` as well:
|
|
37
37
|
```ruby
|
38
38
|
# Gemfile
|
39
39
|
gem 'capybara'
|
40
|
-
gem 'selenium-webdriver' # Still required when using Cuprite as of Rails 6.1
|
41
40
|
gem 'cuprite' # Optional
|
41
|
+
gem 'selenium-webdriver' # Not required if using Cuprite and using Rails >= 6.1
|
42
42
|
```
|
43
43
|
|
44
44
|
And then execute:
|
@@ -166,9 +166,6 @@ dom_id(*args)
|
|
166
166
|
```rb
|
167
167
|
# Small wrapper around Capybara.using_session thats easy to call from an instance
|
168
168
|
within_session(name_or_session, &block)
|
169
|
-
|
170
|
-
# Remove all cookie banners
|
171
|
-
mark_all_banners_as_read!
|
172
169
|
```
|
173
170
|
|
174
171
|
#### Cuprite Helpers
|
@@ -179,7 +176,7 @@ pause
|
|
179
176
|
|
180
177
|
# Opens a Pry or IRB repl. Will use Pry if Pry is defined, fallsback
|
181
178
|
# to debugging with IRB
|
182
|
-
debug
|
179
|
+
debug binding
|
183
180
|
```
|
184
181
|
|
185
182
|
### Env Variables
|
@@ -190,6 +187,9 @@ ENV variables used by this gem.
|
|
190
187
|
ENV["APP_HOST"] # used for Capybara.app_host
|
191
188
|
ENV["CAPYBARA_ARTIFACTS"] # used for Capybara.save_path
|
192
189
|
ENV["CHROME_URL"] # used for setting a remote chrome instance for Cuprite
|
190
|
+
ENV["PROCESS_TIMEOUT"] # How long to wait before killing the process, default is 5 seconds
|
191
|
+
ENV["CI"] # Whether or not to run Cuprite in headless mode, defaults to true.
|
192
|
+
ENV["SLOWMO"] # Delay in seconds before sending a command (default 0). Also see https://github.com/rubycdp/ferrum#customization
|
193
193
|
```
|
194
194
|
|
195
195
|
## I don't want to use Cuprite.
|
@@ -12,13 +12,23 @@ module EvilSystems
|
|
12
12
|
def self.initial_setup
|
13
13
|
return unless defined? Capybara::Cuprite
|
14
14
|
|
15
|
+
begin
|
16
|
+
process_timeout = Integer(ENV.fetch("PROCESS_TIMEOUT", 5))
|
17
|
+
rescue
|
18
|
+
process_timeout = 5
|
19
|
+
end
|
20
|
+
|
15
21
|
remote_options = RemoteChrome.options
|
22
|
+
|
16
23
|
::Capybara.register_driver(:cuprite) do |app|
|
17
24
|
::Capybara::Cuprite::Driver.new(
|
18
25
|
app,
|
19
26
|
**{
|
20
27
|
window_size: [1200, 800],
|
21
|
-
browser_options: {"no-sandbox" => nil},
|
28
|
+
browser_options: RemoteChrome.connected? ? {"no-sandbox" => nil} : {},
|
29
|
+
headless: ENV.fetch("CI", "true") == "true",
|
30
|
+
process_timeout: process_timeout,
|
31
|
+
slowmo: ENV.fetch("SLOWMO", 0).to_f,
|
22
32
|
inspector: true
|
23
33
|
}.merge(remote_options)
|
24
34
|
)
|
@@ -23,12 +23,12 @@ module EvilSystems
|
|
23
23
|
def self.options
|
24
24
|
# Check whether the remote chrome is running and configure the Capybara
|
25
25
|
# driver for it.
|
26
|
-
|
26
|
+
connected? ? {url: url} : {}
|
27
27
|
end
|
28
28
|
|
29
29
|
# Whether or not the socket could be connected
|
30
30
|
# @return [Boolean]
|
31
|
-
def self.
|
31
|
+
def self.connected?
|
32
32
|
if url.nil?
|
33
33
|
false
|
34
34
|
else
|
data/lib/evil_systems/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evil_systems
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ParamagicDev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
requirements: []
|
98
|
-
rubygems_version: 3.1.
|
98
|
+
rubygems_version: 3.1.6
|
99
99
|
signing_key:
|
100
100
|
specification_version: 4
|
101
101
|
summary: Fully integrated setup based on EvilMartians system of a test
|