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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e260134685b60dd32d198ed9e16d06c951c8efca2a5e7f7839c6f2bd25a513cd
4
- data.tar.gz: e46a0563606043cadad08f2ccc9e301f3407120bf5b3c4b15275cba5096e2a78
3
+ metadata.gz: aa4fcc03e62bde5ed6544ebe475649eaf5111a5e5ce8a76c9f315865b6e49b41
4
+ data.tar.gz: ec4f28dcd255085354cd046b88d0bbe56a08ba5442d07ada59046040195a9f76
5
5
  SHA512:
6
- metadata.gz: a94ba44801ac0e86b5c519795b8de8dc8b2f55029df0e11d8228b059675f473d97dc8efec3c022b53b9763a0b5c4fbf9f21fe135a614bcfb7b0769d714434a33
7
- data.tar.gz: 81356df72c18b1669bc45b48ff61f118d32a90e48a3a6bd269daedf4c804441116fea2e67cf625982a1e5beb527ce14fd8867cb3422159422a7470ccba1c5f7b
6
+ metadata.gz: 3b56787ea17108908bf3fdbdc1a5cf9fd928402629b636e303c075e0662ac5d3ec66ff95ee16e7b551485107bc981b371c7bc81a18bec2704bad71ea7476f199
7
+ data.tar.gz: ebe190e15d7b09e29a602940ca22ba4ba94dba7969c42f254f4cd4d02fac4554ed5fe3cbc8a72d15c77dc176af538f2989607394e976785e8227c1f7a503a999
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
- ## 0.0.1
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 Minitest.) on best practices for system tests. In this blog post,
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
- remote_chrome ? {url: url} : {}
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.remote_chrome
31
+ def self.connected?
32
32
  if url.nil?
33
33
  false
34
34
  else
@@ -1,3 +1,3 @@
1
1
  module EvilSystems
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
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.3
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-05 00:00:00.000000000 Z
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.4
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