evil_systems 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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