pludoni_rspec 0.9.0 → 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: 5ce3524dca25e4a41f37fe2135924b1cdbd1e1ff0fa7e83cd5501c9cf6d55123
4
- data.tar.gz: 9b6f43e2fbe7149ee26567f1e3d9d0156ca71325ba9dc7f361ee901eade94066
3
+ metadata.gz: b72e0775bf6c566724426d4dbca91688ff5ced3184b5066827e1423aee809077
4
+ data.tar.gz: b64724440621fecc9ec44ccfa0d2793b8d860ce2b8f4c99b3a7c0293a8877dc6
5
5
  SHA512:
6
- metadata.gz: 2737c05b3e5bd855247e942cdb4d5006af3f2e5a386d55180f135c8d555db81ed60a98d4e1f34fea16b9198831443ea484f142dbfd788232edc01882399f5737
7
- data.tar.gz: c6fa190fa8e274c3b52fcf91b8bda8d07bfb347051e2e731dba110972e6da4101b75416b89d81df273397de007e04c16eac1b295b94b9c95d0722153f30834f2
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,135 +1,90 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pludoni_rspec (0.9.0)
5
- apparition
4
+ pludoni_rspec (0.10.0)
6
5
  capybara (>= 3.13.2)
6
+ cuprite
7
7
  fuubar (>= 2.3.1)
8
8
  headless (>= 2.3.1)
9
9
  pry-rails
10
10
  puma
11
11
  rspec_junit_formatter
12
- rubocop
13
- rubocop-performance
14
- rubocop-rails
15
- rubocop-rspec
16
- selenium-webdriver (>= 3.141.0)
17
12
  simplecov (>= 0.16.1)
18
13
  simplecov-cobertura
19
- webdrivers (>= 4.0.0)
20
14
 
21
15
  GEM
22
16
  remote: https://rubygems.org/
23
17
  specs:
24
- activesupport (6.1.3.1)
25
- concurrent-ruby (~> 1.0, >= 1.0.2)
26
- i18n (>= 1.6, < 2)
27
- minitest (>= 5.1)
28
- tzinfo (~> 2.0)
29
- zeitwerk (~> 2.3)
30
- addressable (2.7.0)
31
- public_suffix (>= 2.0.2, < 5.0)
32
- apparition (0.6.0)
33
- capybara (~> 3.13, < 4)
34
- websocket-driver (>= 0.6.5)
35
- ast (2.4.2)
36
- capybara (3.35.3)
18
+ addressable (2.8.1)
19
+ public_suffix (>= 2.0.2, < 6.0)
20
+ capybara (3.38.0)
37
21
  addressable
22
+ matrix
38
23
  mini_mime (>= 0.1.3)
39
24
  nokogiri (~> 1.8)
40
25
  rack (>= 1.6.0)
41
26
  rack-test (>= 0.6.3)
42
27
  regexp_parser (>= 1.5, < 3.0)
43
28
  xpath (~> 3.2)
44
- childprocess (3.0.0)
45
29
  coderay (1.1.3)
46
- concurrent-ruby (1.1.8)
47
- docile (1.3.5)
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)
48
40
  fuubar (2.5.1)
49
41
  rspec-core (~> 3.0)
50
42
  ruby-progressbar (~> 1.4)
51
43
  headless (2.3.1)
52
- i18n (1.8.9)
53
- concurrent-ruby (~> 1.0)
44
+ matrix (0.4.2)
54
45
  method_source (1.0.0)
55
- mini_mime (1.0.3)
56
- mini_portile2 (2.5.0)
57
- minitest (5.14.4)
58
- nio4r (2.5.7)
59
- nokogiri (1.11.2)
60
- mini_portile2 (~> 2.5.0)
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)
61
51
  racc (~> 1.4)
62
- parallel (1.20.1)
63
- parser (3.0.0.0)
64
- ast (~> 2.4.1)
65
- pry (0.14.0)
52
+ pry (0.14.2)
66
53
  coderay (~> 1.1)
67
54
  method_source (~> 1.0)
68
55
  pry-rails (0.3.9)
69
56
  pry (>= 0.10.4)
70
- public_suffix (4.0.6)
71
- puma (5.2.2)
57
+ public_suffix (5.0.1)
58
+ puma (6.1.1)
72
59
  nio4r (~> 2.0)
73
- racc (1.5.2)
74
- rack (2.2.3)
75
- rack-test (1.1.0)
76
- rack (>= 1.0, < 3)
77
- rainbow (3.0.0)
60
+ racc (1.6.2)
61
+ rack (3.0.4.2)
62
+ rack-test (2.0.2)
63
+ rack (>= 1.3)
78
64
  rake (13.0.1)
79
- regexp_parser (2.1.1)
80
- rexml (3.2.4)
81
- rspec-core (3.10.1)
82
- rspec-support (~> 3.10.0)
83
- rspec-support (3.10.2)
84
- rspec_junit_formatter (0.4.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)
85
71
  rspec-core (>= 2, < 4, != 2.12.0)
86
- rubocop (1.12.0)
87
- parallel (~> 1.10)
88
- parser (>= 3.0.0.0)
89
- rainbow (>= 2.2.2, < 4.0)
90
- regexp_parser (>= 1.8, < 3.0)
91
- rexml
92
- rubocop-ast (>= 1.2.0, < 2.0)
93
- ruby-progressbar (~> 1.7)
94
- unicode-display_width (>= 1.4.0, < 3.0)
95
- rubocop-ast (1.4.1)
96
- parser (>= 2.7.1.5)
97
- rubocop-performance (1.10.2)
98
- rubocop (>= 0.90.0, < 2.0)
99
- rubocop-ast (>= 0.4.0)
100
- rubocop-rails (2.9.1)
101
- activesupport (>= 4.2.0)
102
- rack (>= 1.1)
103
- rubocop (>= 0.90.0, < 2.0)
104
- rubocop-rspec (2.2.0)
105
- rubocop (~> 1.0)
106
- rubocop-ast (>= 1.1.0)
107
- ruby-progressbar (1.11.0)
108
- rubyzip (2.3.0)
109
- selenium-webdriver (3.142.7)
110
- childprocess (>= 0.5, < 4.0)
111
- rubyzip (>= 1.2.2)
112
- simplecov (0.21.2)
72
+ ruby-progressbar (1.13.0)
73
+ simplecov (0.22.0)
113
74
  docile (~> 1.1)
114
75
  simplecov-html (~> 0.11)
115
76
  simplecov_json_formatter (~> 0.1)
116
- simplecov-cobertura (1.4.2)
117
- simplecov (~> 0.8)
77
+ simplecov-cobertura (2.1.0)
78
+ rexml
79
+ simplecov (~> 0.19)
118
80
  simplecov-html (0.12.3)
119
- simplecov_json_formatter (0.1.2)
120
- tzinfo (2.0.4)
121
- concurrent-ruby (~> 1.0)
122
- unicode-display_width (2.0.0)
123
- webdrivers (4.6.0)
124
- nokogiri (~> 1.6)
125
- rubyzip (>= 1.3.0)
126
- selenium-webdriver (>= 3.0, < 4.0)
127
- websocket-driver (0.7.3)
81
+ simplecov_json_formatter (0.1.4)
82
+ webrick (1.8.1)
83
+ websocket-driver (0.7.5)
128
84
  websocket-extensions (>= 0.1.0)
129
85
  websocket-extensions (0.1.5)
130
86
  xpath (3.2.0)
131
87
  nokogiri (~> 1.8)
132
- zeitwerk (2.4.2)
133
88
 
134
89
  PLATFORMS
135
90
  ruby
@@ -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.9.0".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 = :apparition
25
18
  end
26
19
  def self.run
27
20
  ENV["RAILS_ENV"] ||= 'test'
@@ -30,13 +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
- require 'pludoni_rspec/apparition'
37
- else
38
- require 'pludoni_rspec/capybara'
39
- end
27
+ require 'pludoni_rspec/cuprite'
40
28
  require 'pludoni_rspec/freeze_time'
41
29
  require 'pludoni_rspec/shared_context'
42
30
  if defined?(VCR)
@@ -50,18 +38,19 @@ module PludoniRspec
50
38
  end
51
39
 
52
40
  def self.coverage!
53
- if File.exists?('coverage/.resultset.json') && (
41
+ if File.exist?('coverage/.resultset.json') && (
54
42
  File.ctime('coverage/.resultset.json') < (Time.now - 900) ||
55
43
  (JSON.parse(File.read('coverage/.resultset.json')).keys.length > 4)
56
44
  )
57
45
  File.unlink('coverage/.resultset.json')
58
- if File.exists?('coverage/.resultset.json.lock')
46
+ if File.exist?('coverage/.resultset.json.lock')
59
47
  File.unlink('coverage/.resultset.json.lock')
60
48
  end
61
49
  end
62
50
  require 'simplecov'
63
51
  SimpleCov.command_name "spec:#{Time.now.to_i}"
64
52
  if ENV['CI']
53
+ require 'simplecov-cobertura'
65
54
  SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
66
55
  end
67
56
  SimpleCov.start 'rails' do
@@ -27,17 +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"
35
32
  spec.add_dependency "simplecov-cobertura"
36
33
  spec.add_dependency "rspec_junit_formatter"
37
- spec.add_dependency 'rubocop'
38
- spec.add_dependency 'rubocop-rails'
39
- spec.add_dependency 'rubocop-performance'
40
- spec.add_dependency 'rubocop-rspec'
41
34
  spec.add_development_dependency "bundler", "~> 1.16"
42
35
  spec.add_development_dependency "rake", "~> 13.0"
43
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.9.0
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: 2021-03-27 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,35 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: selenium-webdriver
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 3.141.0
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 3.141.0
97
- - !ruby/object:Gem::Dependency
98
- name: webdrivers
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 4.0.0
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: 4.0.0
111
- - !ruby/object:Gem::Dependency
112
- name: apparition
84
+ name: cuprite
113
85
  requirement: !ruby/object:Gem::Requirement
114
86
  requirements:
115
87
  - - ">="
@@ -164,62 +136,6 @@ dependencies:
164
136
  - - ">="
165
137
  - !ruby/object:Gem::Version
166
138
  version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: rubocop
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: rubocop-rails
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :runtime
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: rubocop-performance
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :runtime
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
- - !ruby/object:Gem::Dependency
210
- name: rubocop-rspec
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '0'
216
- type: :runtime
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
139
  - !ruby/object:Gem::Dependency
224
140
  name: bundler
225
141
  requirement: !ruby/object:Gem::Requirement
@@ -269,8 +185,7 @@ files:
269
185
  - exe/nf
270
186
  - exe/of
271
187
  - lib/pludoni_rspec.rb
272
- - lib/pludoni_rspec/apparition.rb
273
- - lib/pludoni_rspec/capybara.rb
188
+ - lib/pludoni_rspec/cuprite.rb
274
189
  - lib/pludoni_rspec/devise.rb
275
190
  - lib/pludoni_rspec/freeze_time.rb
276
191
  - lib/pludoni_rspec/shared_context.rb
@@ -298,8 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
298
213
  - !ruby/object:Gem::Version
299
214
  version: '0'
300
215
  requirements: []
301
- rubyforge_project:
302
- rubygems_version: 2.7.6
216
+ rubygems_version: 3.2.33
303
217
  signing_key:
304
218
  specification_version: 4
305
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