evil_systems 0.0.3 → 0.1.0
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 +4 -4
- data/CHANGELOG.md +8 -1
- data/README.md +4 -2
- data/lib/evil_systems/register_cuprite.rb +10 -1
- data/lib/evil_systems/remote_chrome.rb +2 -2
- 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: aa4fcc03e62bde5ed6544ebe475649eaf5111a5e5ce8a76c9f315865b6e49b41
|
4
|
+
data.tar.gz: ec4f28dcd255085354cd046b88d0bbe56a08ba5442d07ada59046040195a9f76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b56787ea17108908bf3fdbdc1a5cf9fd928402629b636e303c075e0662ac5d3ec66ff95ee16e7b551485107bc981b371c7bc81a18bec2704bad71ea7476f199
|
7
|
+
data.tar.gz: ebe190e15d7b09e29a602940ca22ba4ba94dba7969c42f254f4cd4d02fac4554ed5fe3cbc8a72d15c77dc176af538f2989607394e976785e8227c1f7a503a999
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
-
## 0.0
|
1
|
+
## 0.1.0
|
2
|
+
|
3
|
+
- Allow the Cuprite driver to be configured with ENV variables for headless mode and process_timeouts.
|
4
|
+
- Increase process_timeout default to 5
|
5
|
+
- Add GH actions testing with a remote chrome instance
|
6
|
+
- Minor API cleanup
|
7
|
+
|
8
|
+
## 0.0.3
|
2
9
|
|
3
10
|
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 'evil_system_tests'
|
31
|
+
gem 'evil_system_tests', '~> 0.1.0'
|
32
32
|
end
|
33
33
|
```
|
34
34
|
|
@@ -190,6 +190,8 @@ ENV variables used by this gem.
|
|
190
190
|
ENV["APP_HOST"] # used for Capybara.app_host
|
191
191
|
ENV["CAPYBARA_ARTIFACTS"] # used for Capybara.save_path
|
192
192
|
ENV["CHROME_URL"] # used for setting a remote chrome instance for Cuprite
|
193
|
+
ENV["PROCESS_TIMEOUT"] # How long to wait before killing the process, default is 5 seconds
|
194
|
+
ENV["CI"] # Whether or not to run Cuprite in headless mode, defaults to true.
|
193
195
|
```
|
194
196
|
|
195
197
|
## I don't want to use Cuprite.
|
@@ -12,13 +12,22 @@ 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,
|
22
31
|
inspector: true
|
23
32
|
}.merge(remote_options)
|
24
33
|
)
|
@@ -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.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ParamagicDev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-07 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
|