pludoni_rspec 0.8.1 → 0.10.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: 1c7bf89524e38698559962748d31fab5c45fb41c1c17d559db74874710c2aaa7
4
- data.tar.gz: 1cee6e43c07ec2f51407b3948f18720134a3f7fc7b261f6e83efc54d67a0d1ca
3
+ metadata.gz: b72e0775bf6c566724426d4dbca91688ff5ced3184b5066827e1423aee809077
4
+ data.tar.gz: b64724440621fecc9ec44ccfa0d2793b8d860ce2b8f4c99b3a7c0293a8877dc6
5
5
  SHA512:
6
- metadata.gz: bd3c264e8e6a811a01b75c7cfe5319753df420506b19dc562c0b2de1b51c5d7bad812b1a9eefee43e72fce8010534cc476da1d35f56d5998fef8afa28fe76270
7
- data.tar.gz: ff5b0724cbb3ddd44823ff6edc7975c1806357aaa5aa689a06b1698a74a153d634b5ca42445a0b6faac62781ddc1db6de38f29347123be1c51fa6aa148d92aec
6
+ metadata.gz: 5258d9af77b69778feb054685e5f5953f5c78175a6be63ab1521578253d8c8ff1fa1fa8556d7da92bf1c34f5e0070ab1d74fb933c3dce8840fea1e696388fe8c
7
+ data.tar.gz: af776e0bdb2afd7714f76412cd7016a88d31d7d726757f4f9bce206911f0148d4214e5a556b4bad2c3792767cc98183ce3c9abf6c86cad6480961715cfd872ff
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ### 0.10
2
+
3
+ - Optional Vite build before first system spec
4
+ - Cuprite default
5
+ - ViewComponent TestHelper inclusion
6
+ - No rubocop
7
+ - local! helper to connect via ssh portforwarding
8
+ - screenshot full
9
+
10
+ ### 0.9
11
+
12
+ - Gitlab artifacts integrated
13
+ - apparition revived
14
+ - Rubocop deps
15
+
1
16
  ### 0.5
2
17
 
3
18
  * [9937c05c9c] - Firefox added as test driver with geckodriver-helper (Stefan Wienert)
data/Gemfile.lock CHANGED
@@ -1,76 +1,88 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pludoni_rspec (0.8.0)
4
+ pludoni_rspec (0.10.0)
5
5
  capybara (>= 3.13.2)
6
+ cuprite
6
7
  fuubar (>= 2.3.1)
7
8
  headless (>= 2.3.1)
8
9
  pry-rails
9
10
  puma
10
- selenium-webdriver (>= 3.141.0)
11
+ rspec_junit_formatter
11
12
  simplecov (>= 0.16.1)
12
- webdrivers (>= 4.0.0)
13
+ simplecov-cobertura
13
14
 
14
15
  GEM
15
16
  remote: https://rubygems.org/
16
17
  specs:
17
- addressable (2.7.0)
18
- public_suffix (>= 2.0.2, < 5.0)
19
- capybara (3.33.0)
18
+ addressable (2.8.1)
19
+ public_suffix (>= 2.0.2, < 6.0)
20
+ capybara (3.38.0)
20
21
  addressable
22
+ matrix
21
23
  mini_mime (>= 0.1.3)
22
24
  nokogiri (~> 1.8)
23
25
  rack (>= 1.6.0)
24
26
  rack-test (>= 0.6.3)
25
- regexp_parser (~> 1.5)
27
+ regexp_parser (>= 1.5, < 3.0)
26
28
  xpath (~> 3.2)
27
- childprocess (3.0.0)
28
29
  coderay (1.1.3)
29
- docile (1.3.2)
30
- fuubar (2.5.0)
30
+ concurrent-ruby (1.2.2)
31
+ cuprite (0.14.3)
32
+ capybara (~> 3.0)
33
+ ferrum (~> 0.13.0)
34
+ docile (1.4.0)
35
+ ferrum (0.13)
36
+ addressable (~> 2.5)
37
+ concurrent-ruby (~> 1.1)
38
+ webrick (~> 1.7)
39
+ websocket-driver (>= 0.6, < 0.8)
40
+ fuubar (2.5.1)
31
41
  rspec-core (~> 3.0)
32
42
  ruby-progressbar (~> 1.4)
33
43
  headless (2.3.1)
44
+ matrix (0.4.2)
34
45
  method_source (1.0.0)
35
- mini_mime (1.0.2)
36
- mini_portile2 (2.4.0)
37
- nio4r (2.5.4)
38
- nokogiri (1.10.10)
39
- mini_portile2 (~> 2.4.0)
40
- pry (0.13.1)
46
+ mini_mime (1.1.2)
47
+ mini_portile2 (2.8.1)
48
+ nio4r (2.5.8)
49
+ nokogiri (1.14.2)
50
+ mini_portile2 (~> 2.8.0)
51
+ racc (~> 1.4)
52
+ pry (0.14.2)
41
53
  coderay (~> 1.1)
42
54
  method_source (~> 1.0)
43
55
  pry-rails (0.3.9)
44
56
  pry (>= 0.10.4)
45
- <<<<<<< HEAD
46
- public_suffix (4.0.1)
47
- puma (4.3.5)
48
- =======
49
- public_suffix (4.0.6)
50
- puma (5.0.2)
51
- >>>>>>> 41f9d46... V.0.8.0
57
+ public_suffix (5.0.1)
58
+ puma (6.1.1)
52
59
  nio4r (~> 2.0)
53
- rack (2.2.3)
54
- rack-test (1.1.0)
55
- rack (>= 1.0, < 3)
56
- rake (10.5.0)
57
- regexp_parser (1.8.2)
58
- rspec-core (3.9.3)
59
- rspec-support (~> 3.9.3)
60
- rspec-support (3.9.3)
61
- ruby-progressbar (1.10.1)
62
- rubyzip (2.3.0)
63
- selenium-webdriver (3.142.7)
64
- childprocess (>= 0.5, < 4.0)
65
- rubyzip (>= 1.2.2)
66
- simplecov (0.19.0)
60
+ racc (1.6.2)
61
+ rack (3.0.4.2)
62
+ rack-test (2.0.2)
63
+ rack (>= 1.3)
64
+ rake (13.0.1)
65
+ regexp_parser (2.7.0)
66
+ rexml (3.2.5)
67
+ rspec-core (3.12.1)
68
+ rspec-support (~> 3.12.0)
69
+ rspec-support (3.12.0)
70
+ rspec_junit_formatter (0.6.0)
71
+ rspec-core (>= 2, < 4, != 2.12.0)
72
+ ruby-progressbar (1.13.0)
73
+ simplecov (0.22.0)
67
74
  docile (~> 1.1)
68
75
  simplecov-html (~> 0.11)
76
+ simplecov_json_formatter (~> 0.1)
77
+ simplecov-cobertura (2.1.0)
78
+ rexml
79
+ simplecov (~> 0.19)
69
80
  simplecov-html (0.12.3)
70
- webdrivers (4.4.1)
71
- nokogiri (~> 1.6)
72
- rubyzip (>= 1.3.0)
73
- selenium-webdriver (>= 3.0, < 4.0)
81
+ simplecov_json_formatter (0.1.4)
82
+ webrick (1.8.1)
83
+ websocket-driver (0.7.5)
84
+ websocket-extensions (>= 0.1.0)
85
+ websocket-extensions (0.1.5)
74
86
  xpath (3.2.0)
75
87
  nokogiri (~> 1.8)
76
88
 
@@ -80,7 +92,7 @@ PLATFORMS
80
92
  DEPENDENCIES
81
93
  bundler (~> 1.16)
82
94
  pludoni_rspec!
83
- rake (~> 10.0)
95
+ rake (~> 13.0)
84
96
 
85
97
  BUNDLED WITH
86
98
  1.17.3
data/README.md CHANGED
@@ -50,3 +50,23 @@ Optional - Loaded if companion gem is available:
50
50
  * extract_link_from(last_mail, link: 0) - gets you the link (without protocol + host) of the first link in the last mail with a html body
51
51
  * ``include_context 'active_job_inline'``
52
52
  * all ActiveJobs will be run immediately in this group
53
+
54
+ ### Gitlab coverage + test report
55
+
56
+ Gitlab supports inlining test-coverage + showing detailed failed/passed test statistics. This gems includes the necessary formatters. Coverage is automatically loaded in CI. For test case integration, add the RspecJunitFormatter to the rspec command in your ``bin/ci``/run command etc.
57
+
58
+ e.g. using multiple rspec runs
59
+
60
+ ```
61
+ bundle exec rspec --color --tty --failure-exit-code 0 --format RspecJunitFormatter -out rspec1.xml
62
+ bundle exec rspec --color --tty --only-failures --format RspecJunitFormatter -out rspec2.xml
63
+ ```
64
+
65
+ ```yaml
66
+ # .gitlab-ci.yml
67
+ artifacts:
68
+ reports:
69
+ cobertura: coverage/coverage.xml
70
+ junit: 'rspec*.xml'
71
+ ```
72
+ -
@@ -1,19 +1,24 @@
1
1
  require "capybara"
2
+ require 'capybara/cuprite'
2
3
  require "headless"
3
4
  require "puma"
4
5
  require 'pludoni_rspec/system_test_chrome_helper'
5
6
 
6
- require 'capybara/apparition'
7
- Capybara.register_driver :apparition_debug do |app|
8
- Capybara::Apparition::Driver.new(app, js_errors: true, browser_options: { 'no-sandbox' => true })
9
- end
10
- Capybara.register_driver :apparition do |app|
7
+ Capybara.register_driver(:cuprite) do |app|
8
+ options = {}
11
9
  if ENV['CI']
12
- options[:browser_options] = { 'no-sandbox' => true }
10
+ options['no-sandbox'] = nil
13
11
  end
14
- Capybara::Apparition::Driver.new(app, PludoniRspec::Config.apparition_arguments)
12
+ Capybara::Cuprite::Driver.new(app,
13
+ window_size: [1200, 800],
14
+ browser_options: options,
15
+ js_errors: true,
16
+ timeout: 20,
17
+ process_timeout: 15,
18
+ inspector: ENV['INSPECTOR']
19
+ )
15
20
  end
16
- Capybara.javascript_driver = :apparition
21
+ Capybara.javascript_driver = :cuprite
17
22
 
18
23
  RSpec.configure do |c|
19
24
  c.include PludoniRspec::SystemTestChromeHelper, type: :feature
@@ -24,10 +29,10 @@ RSpec.configure do |c|
24
29
  end
25
30
  c.before(:each, type: :system) do
26
31
  if defined?(driven_by)
27
- driven_by :apparition
32
+ driven_by :cuprite
28
33
  end
29
34
  end
30
- c.around(:all, js: true) do |ex|
35
+ c.around(:example, js: true) do |ex|
31
36
  begin
32
37
  if !@headless and PludoniRspec::Config.wrap_js_spec_in_headless
33
38
  @headless = Headless.new(destroy_at_exit: true, reuse: true)
@@ -24,7 +24,8 @@ if defined?(ActionMailer::Base)
24
24
  end
25
25
 
26
26
  def extract_link_from(mail, link: 0)
27
- link = Nokogiri.parse(mail.html_part.decoded.to_s).search('a')[link]['href']
27
+ body = mail.html_part.presence&.decoded || mail.body.raw_source
28
+ link = Nokogiri::HTML.fragment(body.to_s).search('a')[link]['href']
28
29
  URI.parse(link).tap { |i| i.host = nil; i.scheme = nil }.to_s
29
30
  end
30
31
  end
@@ -15,6 +15,7 @@ RSpec.configure do |config|
15
15
  mocks.verify_partial_doubles = true
16
16
  end
17
17
 
18
+ config.bisect_runner = :shell
18
19
  config.order = :defined
19
20
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
20
21
  config.infer_spec_type_from_file_location!
@@ -28,6 +29,23 @@ RSpec.configure do |config|
28
29
  config.filter_gems_from_backtrace("fabrication")
29
30
  config.filter_gems_from_backtrace("grape")
30
31
  config.filter_gems_from_backtrace("rack")
32
+ if defined?(ViewComponent)
33
+ config.include ViewComponent::TestHelpers, type: :component
34
+ config.include Capybara::RSpecMatchers, type: :component
35
+ end
36
+ if defined?(ViteRuby)
37
+ # rubocop:disable Style/GlobalVars
38
+ config.before(:each, type: :system) do
39
+ unless $vite_build
40
+ puts "\e[31mPrecompiling Vite for system specs \e[0m"
41
+ bm = Benchmark.measure do
42
+ ViteRuby.commands.build
43
+ end
44
+ $vite_build = true
45
+ puts "\e[32m -> Vite build done in #{bm.real.round(2)} \e[0m"
46
+ end
47
+ end
48
+ end
31
49
 
32
50
  config.around(:each, :timeout) do |example|
33
51
  time = 10 unless time.kind_of?(Numeric)
@@ -22,7 +22,7 @@ module PludoniRspec::SystemTestChromeHelper
22
22
  end
23
23
 
24
24
  def screenshot(path = '1')
25
- page.save_screenshot(Rails.root.join("public/screenshots/#{path}.png"))
25
+ page.save_screenshot(Rails.root.join("public/screenshots/#{path}.png"), full: true)
26
26
  end
27
27
 
28
28
  # skip any confirm: "Really delete?"
@@ -58,4 +58,17 @@ module PludoniRspec::SystemTestChromeHelper
58
58
 
59
59
  raise msg
60
60
  end
61
+
62
+ def local!
63
+ uri = URI.parse(page.current_url)
64
+ puts "--- Connect with local browser:"
65
+ puts " 1. Open a SSH tunnel with port forwarding to the test server:"
66
+ puts "\nssh #{ENV['LOGNAME']}@pludoni.com -L 8080:localhost:#{uri.port}\n"
67
+ puts " 2. Open in Browser: "
68
+ uri.port = nil
69
+ uri.scheme = nil
70
+ uri.host = nil
71
+ puts "\nhttp://localhost:8080#{uri}\n"
72
+ puts " Afterwards, you can close the SSH session"
73
+ end
61
74
  end
@@ -1,3 +1,3 @@
1
1
  module PludoniRspec
2
- VERSION = "0.8.1".freeze
2
+ VERSION = "0.10.0".freeze
3
3
  end
data/lib/pludoni_rspec.rb CHANGED
@@ -5,23 +5,16 @@ require 'json'
5
5
  module PludoniRspec
6
6
  class Config
7
7
  class << self
8
- attr_accessor :chrome_driver_version
9
8
  attr_accessor :destroy_headless
10
9
  attr_accessor :wrap_js_spec_in_headless
11
10
  attr_accessor :chrome_arguments
12
11
  attr_accessor :capybara_timeout
13
- attr_accessor :capybara_driver
14
- attr_accessor :firefox_arguments
15
- attr_accessor :apparition_arguments
16
12
  end
17
13
  # self.chrome_driver_version = "2.36"
18
14
  self.destroy_headless = false
19
15
  self.wrap_js_spec_in_headless = RbConfig::CONFIG['host_os']['linux']
20
16
  # self.chrome_arguments = ['headless', 'disable-gpu', "window-size=1600,1200", 'no-sandbox', 'disable-dev-shm-usage', 'lang=de']
21
17
  self.capybara_timeout = ENV['CI'] == '1' ? 30 : 5
22
- self.firefox_arguments = ['--headless', '--window-size=1600,1200']
23
- self.apparition_arguments = { js_errors: false, screen_size: [1600, 1200], window_size: [1600, 1200], browser_logger: File.open(File::NULL, 'w') }
24
- self.capybara_driver = :firefox
25
18
  end
26
19
  def self.run
27
20
  ENV["RAILS_ENV"] ||= 'test'
@@ -30,14 +23,8 @@ module PludoniRspec
30
23
  require File.expand_path("config/environment", Dir.pwd)
31
24
  abort("The Rails environment is running in production mode!") if Rails.env.production?
32
25
  require 'rspec/rails'
33
-
34
26
  require 'pludoni_rspec/spec_helper'
35
- if PludoniRspec::Config.capybara_driver == :apparition
36
- puts "Apparition is deprecated for us, use Firefox"
37
- require 'pludoni_rspec/apparition'
38
- else
39
- require 'pludoni_rspec/capybara'
40
- end
27
+ require 'pludoni_rspec/cuprite'
41
28
  require 'pludoni_rspec/freeze_time'
42
29
  require 'pludoni_rspec/shared_context'
43
30
  if defined?(VCR)
@@ -51,17 +38,21 @@ module PludoniRspec
51
38
  end
52
39
 
53
40
  def self.coverage!
54
- if File.exists?('coverage/.resultset.json') && (
41
+ if File.exist?('coverage/.resultset.json') && (
55
42
  File.ctime('coverage/.resultset.json') < (Time.now - 900) ||
56
43
  (JSON.parse(File.read('coverage/.resultset.json')).keys.length > 4)
57
44
  )
58
45
  File.unlink('coverage/.resultset.json')
59
- if File.exists?('coverage/.resultset.json.lock')
46
+ if File.exist?('coverage/.resultset.json.lock')
60
47
  File.unlink('coverage/.resultset.json.lock')
61
48
  end
62
49
  end
63
50
  require 'simplecov'
64
51
  SimpleCov.command_name "spec:#{Time.now.to_i}"
52
+ if ENV['CI']
53
+ require 'simplecov-cobertura'
54
+ SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
55
+ end
65
56
  SimpleCov.start 'rails' do
66
57
  add_filter do |source_file|
67
58
  source_file.lines.count < 10
@@ -27,11 +27,10 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency 'headless', ">= 2.3.1"
28
28
  spec.add_dependency 'pry-rails'
29
29
  spec.add_dependency 'puma'
30
- # We don't need selenium, but rails system specs checks for availability
31
- spec.add_dependency 'selenium-webdriver', ">= 3.141.0"
32
- spec.add_dependency "webdrivers", ">= 4.0.0"
33
- # spec.add_dependency 'apparition'
30
+ spec.add_dependency 'cuprite'
34
31
  spec.add_dependency 'simplecov', ">= 0.16.1"
32
+ spec.add_dependency "simplecov-cobertura"
33
+ spec.add_dependency "rspec_junit_formatter"
35
34
  spec.add_development_dependency "bundler", "~> 1.16"
36
- spec.add_development_dependency "rake", "~> 10.0"
35
+ spec.add_development_dependency "rake", "~> 13.0"
37
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pludoni_rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Wienert
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-17 00:00:00.000000000 Z
11
+ date: 2023-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -81,47 +81,61 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: selenium-webdriver
84
+ name: cuprite
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 3.141.0
89
+ version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 3.141.0
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: webdrivers
98
+ name: simplecov
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 4.0.0
103
+ version: 0.16.1
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 4.0.0
110
+ version: 0.16.1
111
111
  - !ruby/object:Gem::Dependency
112
- name: simplecov
112
+ name: simplecov-cobertura
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 0.16.1
117
+ version: '0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 0.16.1
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec_junit_formatter
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
  - !ruby/object:Gem::Dependency
126
140
  name: bundler
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +156,14 @@ dependencies:
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '10.0'
159
+ version: '13.0'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '10.0'
166
+ version: '13.0'
153
167
  description: pludoni GmbH's RSpec template. Just require in spec_helper
154
168
  email:
155
169
  - info@stefanwienert.de
@@ -171,8 +185,7 @@ files:
171
185
  - exe/nf
172
186
  - exe/of
173
187
  - lib/pludoni_rspec.rb
174
- - lib/pludoni_rspec/apparition.rb
175
- - lib/pludoni_rspec/capybara.rb
188
+ - lib/pludoni_rspec/cuprite.rb
176
189
  - lib/pludoni_rspec/devise.rb
177
190
  - lib/pludoni_rspec/freeze_time.rb
178
191
  - lib/pludoni_rspec/shared_context.rb
@@ -200,8 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
213
  - !ruby/object:Gem::Version
201
214
  version: '0'
202
215
  requirements: []
203
- rubyforge_project:
204
- rubygems_version: 2.7.6
216
+ rubygems_version: 3.2.33
205
217
  signing_key:
206
218
  specification_version: 4
207
219
  summary: pludoni GmbH's RSpec template. Just require in spec_helper
@@ -1,38 +0,0 @@
1
- require "capybara"
2
- require "selenium-webdriver"
3
- require "headless"
4
- require "puma"
5
- require 'pludoni_rspec/system_test_chrome_helper'
6
- require 'webdrivers/geckodriver'
7
-
8
- RSpec.configure do |c|
9
- c.before(:all, js: true) do
10
- Webdrivers.cache_time = 86_400
11
- Webdrivers::Geckodriver.update
12
- end
13
- c.include PludoniRspec::SystemTestChromeHelper, type: :feature
14
- c.include PludoniRspec::SystemTestChromeHelper, type: :system
15
- c.before(:all, js: true) do
16
- # disable puma output
17
- Capybara.server = :puma, { Silent: true }
18
- end
19
- c.before(:each, js: true) do
20
- if defined?(driven_by)
21
- driven_by :selenium_headless, using: :firefox, screen_size: [1400, 1400]
22
- end
23
- end
24
- c.around(:all, js: true) do |ex|
25
- begin
26
- if !@headless and PludoniRspec::Config.wrap_js_spec_in_headless
27
- @headless = Headless.new(destroy_at_exit: true, reuse: true)
28
- @headless.start
29
- end
30
- ex.run
31
- ensure
32
- if @headless and PludoniRspec::Config.destroy_headless
33
- @headless.destroy
34
- end
35
- end
36
- end
37
- end
38
- Capybara.default_max_wait_time = PludoniRspec::Config.capybara_timeout