spreewald 4.5.1 → 4.6.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: 7fc8c05a08753163728b0fc4f49ba18329fa74982395ccc42f0a846d307808e8
4
- data.tar.gz: 7601c85d5993c5c82212067422943e818f7ab9b1b0b90f439935fb21d07d922c
3
+ metadata.gz: b39835ad05fbf5b2f8f480e2f4bafd13fd07f2c822228adff6445a81ac36df13
4
+ data.tar.gz: 4844370f32c120881c762570794714a6f76c1ceb6a80fe2a97ecf676fa8f3a53
5
5
  SHA512:
6
- metadata.gz: 39deb82f5ad22c87a9291dc9a90fd65da1c867bb662ff35176e371e6034b9d12efa7216d198ca2a5bbca8b8a7fad9a55d603a39c9aca3f951b9b938813c0982c
7
- data.tar.gz: ff6288ad06c31a8c77ac25071d7f9e627134a898c2c3d5df65ef646d0df07c18412b841efc0dc1bccf81eb5bffb705e10b0f836fab4c1d2873394c5acae2b2d1
6
+ metadata.gz: 5fc1c4a1a20b56e5e66d939c8e4872777bb4fd0c60fae7299c15cbf7526d47a60f3f5596ac31871d85bb30e04f6df552bb29e156295bf560d31af122f89226f0
7
+ data.tar.gz: 87de9fc0e2276d54dbbba13417ff264e4265ad840b3dda35b5c2b78b820d4952f5e77fc689a4f166d087c6efc43ba4368729b47dd1e5944a99d2ae2938280dd9
data/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file.
3
3
 
4
4
  This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
5
5
 
6
+ ## 4.6.0
7
+ - Spreewald now explicitly depends on Capybara. We don't expect anyone used it without Capybara in the first place.
8
+ - Changes to "the ... field should (not) have (an error|the error ...)" step:
9
+ - fixed an edgecases where errors were nested deeper inside a .field_with_errors element
10
+ - significant speed-up in most situations
11
+
6
12
  ## 4.5.1
7
13
  - Make `I should see an element for` and `I click on the element for` compatible for Ruby 3.0. ([#204](https://github.com/makandra/spreewald/issues/204))
8
14
 
data/Gemfile.ruby266 CHANGED
@@ -2,6 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  ruby '2.6.6'
4
4
 
5
+ gemspec
6
+
5
7
  gem 'rake'
6
8
  gem 'rspec'
7
9
  gem 'cucumber'
data/Gemfile.ruby266.lock CHANGED
@@ -1,6 +1,18 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ spreewald (4.6.0)
5
+ capybara
6
+ cucumber
7
+ cucumber_priority (>= 0.3.0)
8
+ rspec (>= 2.13.0)
9
+ xpath
10
+
1
11
  GEM
2
12
  remote: https://rubygems.org/
3
13
  specs:
14
+ addressable (2.8.5)
15
+ public_suffix (>= 2.0.2, < 6.0)
4
16
  aruba (2.0.0)
5
17
  bundler (>= 1.17, < 3.0)
6
18
  childprocess (>= 2.0, < 5.0)
@@ -9,6 +21,15 @@ GEM
9
21
  rspec-expectations (~> 3.4)
10
22
  thor (~> 1.0)
11
23
  builder (3.2.4)
24
+ capybara (3.36.0)
25
+ addressable
26
+ matrix
27
+ mini_mime (>= 0.1.3)
28
+ nokogiri (~> 1.8)
29
+ rack (>= 1.6.0)
30
+ rack-test (>= 0.6.3)
31
+ regexp_parser (>= 1.5, < 3.0)
32
+ xpath (~> 3.2)
12
33
  childprocess (4.0.0)
13
34
  contracts (0.16.0)
14
35
  cucumber (7.1.0)
@@ -42,20 +63,30 @@ GEM
42
63
  cucumber-core (~> 10.1, >= 10.1.0)
43
64
  cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
44
65
  cucumber-messages (~> 17.1, >= 17.1.1)
66
+ cucumber_priority (0.3.3)
67
+ cucumber
45
68
  diff-lcs (1.4.4)
46
69
  ffi (1.15.4)
47
70
  gemika (0.8.1)
48
71
  mail (2.7.1)
49
72
  mini_mime (>= 0.1.1)
73
+ matrix (0.4.2)
50
74
  mime-types (3.4.1)
51
75
  mime-types-data (~> 3.2015)
52
76
  mime-types-data (3.2021.1115)
53
77
  mini_mime (1.1.2)
78
+ mini_portile2 (2.5.3)
54
79
  multi_test (0.1.2)
55
- nokogiri (1.11.1-x86_64-linux)
80
+ nokogiri (1.11.1)
81
+ mini_portile2 (~> 2.5.0)
56
82
  racc (~> 1.4)
83
+ public_suffix (5.0.4)
57
84
  racc (1.5.2)
85
+ rack (3.0.8)
86
+ rack-test (2.1.0)
87
+ rack (>= 1.3)
58
88
  rake (13.0.3)
89
+ regexp_parser (2.8.3)
59
90
  rspec (3.10.0)
60
91
  rspec-core (~> 3.10.0)
61
92
  rspec-expectations (~> 3.10.0)
@@ -72,6 +103,8 @@ GEM
72
103
  sys-uname (1.2.2)
73
104
  ffi (~> 1.1)
74
105
  thor (1.1.0)
106
+ xpath (3.2.0)
107
+ nokogiri (~> 1.8)
75
108
 
76
109
  PLATFORMS
77
110
  ruby
@@ -84,6 +117,7 @@ DEPENDENCIES
84
117
  nokogiri
85
118
  rake
86
119
  rspec
120
+ spreewald!
87
121
 
88
122
  RUBY VERSION
89
123
  ruby 2.6.6p146
data/Gemfile.ruby320 CHANGED
@@ -2,6 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  ruby '3.2.0'
4
4
 
5
+ gemspec
6
+
5
7
  gem 'rake'
6
8
  gem 'rspec'
7
9
  gem 'cucumber'
data/Gemfile.ruby320.lock CHANGED
@@ -1,6 +1,18 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ spreewald (4.6.0)
5
+ capybara
6
+ cucumber
7
+ cucumber_priority (>= 0.3.0)
8
+ rspec (>= 2.13.0)
9
+ xpath
10
+
1
11
  GEM
2
12
  remote: https://rubygems.org/
3
13
  specs:
14
+ addressable (2.8.5)
15
+ public_suffix (>= 2.0.2, < 6.0)
4
16
  aruba (2.0.0)
5
17
  bundler (>= 1.17, < 3.0)
6
18
  childprocess (>= 2.0, < 5.0)
@@ -9,6 +21,15 @@ GEM
9
21
  rspec-expectations (~> 3.4)
10
22
  thor (~> 1.0)
11
23
  builder (3.2.4)
24
+ capybara (3.39.2)
25
+ addressable
26
+ matrix
27
+ mini_mime (>= 0.1.3)
28
+ nokogiri (~> 1.8)
29
+ rack (>= 1.6.0)
30
+ rack-test (>= 0.6.3)
31
+ regexp_parser (>= 1.5, < 3.0)
32
+ xpath (~> 3.2)
12
33
  childprocess (4.0.0)
13
34
  contracts (0.16.0)
14
35
  cucumber (7.1.0)
@@ -42,6 +63,8 @@ GEM
42
63
  cucumber-core (~> 10.1, >= 10.1.0)
43
64
  cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
44
65
  cucumber-messages (~> 17.1, >= 17.1.1)
66
+ cucumber_priority (0.3.3)
67
+ cucumber
45
68
  date (3.3.3)
46
69
  diff-lcs (1.4.4)
47
70
  ffi (1.15.4)
@@ -51,6 +74,7 @@ GEM
51
74
  net-imap
52
75
  net-pop
53
76
  net-smtp
77
+ matrix (0.4.2)
54
78
  mime-types (3.4.1)
55
79
  mime-types-data (~> 3.2015)
56
80
  mime-types-data (3.2021.1115)
@@ -67,8 +91,13 @@ GEM
67
91
  net-protocol
68
92
  nokogiri (1.14.1-x86_64-linux)
69
93
  racc (~> 1.4)
94
+ public_suffix (5.0.4)
70
95
  racc (1.5.2)
96
+ rack (3.0.8)
97
+ rack-test (2.1.0)
98
+ rack (>= 1.3)
71
99
  rake (13.0.3)
100
+ regexp_parser (2.8.3)
72
101
  rspec (3.10.0)
73
102
  rspec-core (~> 3.10.0)
74
103
  rspec-expectations (~> 3.10.0)
@@ -86,6 +115,8 @@ GEM
86
115
  ffi (~> 1.1)
87
116
  thor (1.1.0)
88
117
  timeout (0.3.1)
118
+ xpath (3.2.0)
119
+ nokogiri (~> 1.8)
89
120
 
90
121
  PLATFORMS
91
122
  x86_64-linux
@@ -98,6 +129,7 @@ DEPENDENCIES
98
129
  nokogiri
99
130
  rake
100
131
  rspec
132
+ spreewald!
101
133
 
102
134
  RUBY VERSION
103
135
  ruby 3.2.0p0
@@ -0,0 +1,19 @@
1
+ module Spreewald
2
+ class CapybaraWrapper
3
+ def self.default_max_wait_time
4
+ if Capybara.respond_to?(:default_max_wait_time)
5
+ Capybara.default_max_wait_time
6
+ else
7
+ Capybara.default_wait_time
8
+ end
9
+ end
10
+
11
+ def self.default_max_wait_time=(value)
12
+ if Capybara.respond_to?(:default_max_wait_time=)
13
+ Capybara.default_max_wait_time = value
14
+ else
15
+ Capybara.default_wait_time = value
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,4 +1,5 @@
1
1
  require 'spreewald_support/driver_info'
2
+ require 'spreewald_support/without_waiting'
2
3
 
3
4
  module Spreewald
4
5
  def self.field_error_class
@@ -21,6 +22,7 @@ module Spreewald
21
22
 
22
23
  class FieldErrorFinder
23
24
  include Spreewald::DriverInfo
25
+ include WithoutWaiting
24
26
 
25
27
  def initialize(page, element)
26
28
  @page = page
@@ -28,29 +30,50 @@ module Spreewald
28
30
  end
29
31
 
30
32
  def error_present?
31
- custom_error? || bootstrap3_error? || bootstrap45_error? || rails_error?
33
+ without_waiting do
34
+ custom_error? || bootstrap3_error? || bootstrap45_error? || rails_error?
35
+ end
32
36
  end
33
37
 
34
38
  def custom_error?
35
- Spreewald.field_error_class && @element.has_xpath?("ancestor-or-self::div[contains(@class, \"#{Spreewald.field_error_class}\")]")
39
+ return false unless Spreewald.field_error_class
40
+
41
+ has_xpath? do |x|
42
+ x.ancestor_or_self(:div)[x.attr(:class).contains_word(Spreewald.field_error_class)]
43
+ end
36
44
  end
37
45
 
38
46
  def bootstrap3_error?
39
- @element.has_xpath?('ancestor::div[@class="form-group has-error"]')
47
+ has_xpath? do |x|
48
+ x.ancestor(:div)[x.attr(:class).contains_word('form-group')][x.attr(:class).contains_word('has-error')]
49
+ end
40
50
  end
41
51
 
42
52
  def bootstrap45_error?
43
- element_classes = @element[:class] &.split(' ') || []
44
- invalid_elements = if javascript_capable?
45
- @page.all(':invalid') # Collect all invalid elements as Bootstrap 4 and 5 support client validation
46
- end
53
+ without_waiting do
54
+ element_classes = @element[:class]&.split(' ') || []
55
+ invalid_elements = if javascript_capable?
56
+ @page.all(':invalid') # Collect all invalid elements as Bootstrap 4 and 5 support client validation
57
+ end
47
58
 
48
- element_classes.include?('is-invalid') || (invalid_elements && invalid_elements.include?(@element))
59
+ element_classes.include?('is-invalid') || (invalid_elements && invalid_elements.include?(@element))
60
+ end
49
61
  end
50
62
 
51
63
  def rails_error?
52
- parent_element_classes = @element.find(:xpath, '..')[:class] &.split(' ') || []
53
- parent_element_classes.include?('field_with_errors')
64
+ has_xpath? do |x|
65
+ x.ancestor(:div)[x.attr(:class).contains_word('field_with_errors')]
66
+ end
67
+ end
68
+
69
+ private
70
+
71
+ def has_xpath?(&block)
72
+ xpath = XPath.generate(&block)
73
+ without_waiting do
74
+ @element.has_xpath?(xpath)
75
+ end
54
76
  end
77
+
55
78
  end
56
79
  end
@@ -1,3 +1,5 @@
1
+ require 'spreewald_support/capybara_wrapper'
2
+
1
3
  module ToleranceForSeleniumSyncIssues
2
4
  RETRY_ERRORS = %w[
3
5
  ActionController::UrlGenerationError
@@ -17,24 +19,6 @@ module ToleranceForSeleniumSyncIssues
17
19
  Selenium::WebDriver::Error::NoSuchAlertError
18
20
  ]
19
21
 
20
- class CapybaraWrapper
21
- def self.default_max_wait_time
22
- if Capybara.respond_to?(:default_max_wait_time)
23
- Capybara.default_max_wait_time
24
- else
25
- Capybara.default_wait_time
26
- end
27
- end
28
-
29
- def self.default_max_wait_time=(value)
30
- if Capybara.respond_to?(:default_max_wait_time=)
31
- Capybara.default_max_wait_time = value
32
- else
33
- Capybara.default_wait_time = value
34
- end
35
- end
36
- end
37
-
38
22
  class Patiently
39
23
  WAIT_PERIOD = 0.05
40
24
 
@@ -68,7 +52,7 @@ module ToleranceForSeleniumSyncIssues
68
52
  end
69
53
 
70
54
 
71
- def patiently(seconds = CapybaraWrapper.default_max_wait_time, &block)
55
+ def patiently(seconds = Spreewald::CapybaraWrapper.default_max_wait_time, &block)
72
56
  if page.driver.wait?
73
57
  Patiently.new.patiently(seconds, &block)
74
58
  else
@@ -1,3 +1,3 @@
1
1
  module Spreewald
2
- VERSION = '4.5.1'
2
+ VERSION = '4.6.0'
3
3
  end
@@ -0,0 +1,13 @@
1
+ require 'spreewald_support/capybara_wrapper'
2
+
3
+ module Spreewald
4
+ module WithoutWaiting
5
+ def without_waiting
6
+ prior_max_wait_time = CapybaraWrapper.default_max_wait_time
7
+ CapybaraWrapper.default_max_wait_time = 0
8
+ yield
9
+ ensure
10
+ CapybaraWrapper.default_max_wait_time = prior_max_wait_time
11
+ end
12
+ end
13
+ end
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,8 @@ Bundler.setup
3
3
 
4
4
  require 'pathname'
5
5
 
6
+ require 'capybara'
7
+
6
8
  Dir[Pathname.new(__FILE__).join('..', 'support', '**', '*.rb')].each { |f| require f }
7
9
 
8
10
 
@@ -1,13 +1,5 @@
1
1
  require 'spreewald_support/tolerance_for_selenium_sync_issues'
2
2
 
3
- module Capybara
4
- class ElementNotFound < StandardError; end
5
-
6
- class << self
7
- attr_accessor :default_max_wait_time
8
- end
9
- end
10
-
11
3
  describe ToleranceForSeleniumSyncIssues do
12
4
  subject { World.new }
13
5
  let(:wait_time) { 0.2 }
@@ -0,0 +1,41 @@
1
+ require 'spreewald_support/without_waiting'
2
+
3
+ describe Spreewald::WithoutWaiting do
4
+
5
+ subject do
6
+ Class.new do
7
+ include Spreewald::WithoutWaiting
8
+ end.new
9
+ end
10
+
11
+ describe '#without_waiting' do
12
+ it 'calls the block while setting the Capybara wait time to 0' do
13
+ wait_time_in_block = nil
14
+ subject.without_waiting do
15
+ wait_time_in_block = Capybara.default_max_wait_time
16
+ end
17
+ expect(wait_time_in_block).to eq(0)
18
+ end
19
+
20
+ it 'resets the prior wait time' do
21
+ prior = Capybara.default_max_wait_time
22
+ Capybara.default_max_wait_time = 4
23
+ subject.without_waiting {}
24
+ expect(Capybara.default_max_wait_time).to eq(4)
25
+ Capybara.default_max_wait_time = prior
26
+ end
27
+
28
+ it 'resets the prior wait time on exceptions' do
29
+ prior = Capybara.default_max_wait_time
30
+ Capybara.default_max_wait_time = 4
31
+ expect do
32
+ subject.without_waiting do
33
+ raise 'error'
34
+ end
35
+ end.to raise_error('error')
36
+ expect(Capybara.default_max_wait_time).to eq(4)
37
+ Capybara.default_max_wait_time = prior
38
+ end
39
+ end
40
+
41
+ end
data/spreewald.gemspec CHANGED
@@ -26,13 +26,6 @@ Gem::Specification.new do |gem|
26
26
  gem.add_dependency('cucumber')
27
27
  gem.add_dependency('cucumber_priority', '>=0.3.0')
28
28
  gem.add_dependency('rspec', '>= 2.13.0')
29
-
30
- # Development
31
- gem.add_development_dependency 'bundler', '~> 1.11'
32
- gem.add_development_dependency 'rake'
33
- gem.add_development_dependency 'pry'
34
-
35
- # Testing
36
- gem.add_development_dependency 'aruba', '~> 0.10.2'
37
- gem.add_development_dependency 'geordi'
29
+ gem.add_dependency('capybara')
30
+ gem.add_dependency('xpath')
38
31
  end
@@ -1,10 +1,12 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- spreewald (4.5.1)
4
+ spreewald (4.6.0)
5
+ capybara
5
6
  cucumber
6
7
  cucumber_priority (>= 0.3.0)
7
8
  rspec (>= 2.13.0)
9
+ xpath
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
@@ -11,3 +11,7 @@
11
11
  .form-group
12
12
  = label_tag 'textarea_control_2', 'C'
13
13
  = text_area_tag 'textarea_control_2', "Textarea control line 1\nTextarea control line 2\n"
14
+ .field_with_errors
15
+ .form-group
16
+ = label_tag 'textarea_control_3', 'Nested field is invalid'
17
+ = text_area_tag 'textarea_control_3', "Textarea control line 1\nTextarea control line 2\n"
@@ -35,53 +35,55 @@ Feature: Web steps
35
35
  Scenario: /^the "([^\"]*)" field should( not)? have an error$/
36
36
  When I go to "/forms/invalid_rails_form"
37
37
  Then the "A" field should have an error
38
- Then the "B" field should have an error
39
- Then the "Disabled" field should have an error
40
- Then the "C" field should not have an error
38
+ And the "B" field should have an error
39
+ And the "Disabled" field should have an error
40
+ And the "C" field should not have an error
41
+ And the "Nested field" field should have an error
41
42
 
42
43
  When I go to "/forms/invalid_bootstrap3_form"
43
44
  Then the "A" field should have an error
44
- Then the "B" field should have an error
45
- Then the "Disabled" field should have an error
46
- Then the "C" field should not have an error
45
+ And the "B" field should have an error
46
+ And the "Disabled" field should have an error
47
+ And the "C" field should not have an error
47
48
 
48
49
  When I go to "/forms/invalid_bootstrap4_form"
49
50
  Then the "A" field should have an error
50
- Then the "B" field should have an error
51
- Then the "Disabled" field should have an error
52
- Then the "C" field should not have an error
51
+ And the "B" field should have an error
52
+ And the "Disabled" field should have an error
53
+ And the "C" field should not have an error
53
54
 
54
55
  When I set the custom field error class to "my-error"
55
56
  And I go to "/forms/invalid_custom_form"
56
57
  Then the "A" field should have an error
57
- Then the "B" field should have an error
58
- Then the "Disabled" field should have an error
59
- Then the "C" field should not have an error
58
+ And the "B" field should have an error
59
+ And the "Disabled" field should have an error
60
+ And the "C" field should not have an error
60
61
 
61
62
 
62
63
  @javascript @field_errors
63
64
  Scenario: /^the "([^"]*)" field should have the error "([^"]*)"$/
64
65
  When I go to "/forms/invalid_rails_form"
65
66
  Then the "A" field should have the error "is invalid"
66
- Then the "B" field should have the error "is invalid"
67
- Then the "Disabled" field should have the error "is invalid"
67
+ And the "B" field should have the error "is invalid"
68
+ And the "Disabled" field should have the error "is invalid"
69
+ And the "Nested field" field should have an error
68
70
 
69
71
  When I go to "/forms/invalid_bootstrap3_form"
70
72
  Then the "A" field should have the error "is invalid"
71
- Then the "B" field should have the error "is invalid"
72
- Then the "Disabled" field should have the error "is invalid"
73
+ And the "B" field should have the error "is invalid"
74
+ And the "Disabled" field should have the error "is invalid"
73
75
 
74
76
  When I go to "/forms/invalid_bootstrap4_form"
75
77
  Then the "A" field should have the error "is invalid"
76
- Then the "B" field should have the error "is invalid"
77
- Then the "Disabled" field should have the error "is invalid"
78
+ And the "B" field should have the error "is invalid"
79
+ And the "Disabled" field should have the error "is invalid"
78
80
 
79
81
  When I set the custom field error class to "my-error"
80
82
  And I set the custom error message xpath to "parent::*/child::*[contains(@class, "my-error-description")]"
81
83
  And I go to "/forms/invalid_custom_form"
82
- Then the "A" field should have the error "is invalid"
83
- Then the "B" field should have the error "is invalid"
84
- Then the "Disabled" field should have the error "is invalid"
84
+ And the "A" field should have the error "is invalid"
85
+ And the "B" field should have the error "is invalid"
86
+ And the "Disabled" field should have the error "is invalid"
85
87
 
86
88
  Scenario: /^I should see a form with the following values:$/
87
89
  When I go to "/forms/form1"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreewald
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.1
4
+ version: 4.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Kraze
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-28 00:00:00.000000000 Z
11
+ date: 2023-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
@@ -53,41 +53,13 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 2.13.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.11'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.11'
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
56
+ name: capybara
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
59
  - - ">="
88
60
  - !ruby/object:Gem::Version
89
61
  version: '0'
90
- type: :development
62
+ type: :runtime
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
@@ -95,27 +67,13 @@ dependencies:
95
67
  - !ruby/object:Gem::Version
96
68
  version: '0'
97
69
  - !ruby/object:Gem::Dependency
98
- name: aruba
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 0.10.2
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 0.10.2
111
- - !ruby/object:Gem::Dependency
112
- name: geordi
70
+ name: xpath
113
71
  requirement: !ruby/object:Gem::Requirement
114
72
  requirements:
115
73
  - - ">="
116
74
  - !ruby/object:Gem::Version
117
75
  version: '0'
118
- type: :development
76
+ type: :runtime
119
77
  prerelease: false
120
78
  version_requirements: !ruby/object:Gem::Requirement
121
79
  requirements:
@@ -161,6 +119,7 @@ files:
161
119
  - lib/spreewald/table_steps.rb
162
120
  - lib/spreewald/time_steps.rb
163
121
  - lib/spreewald/web_steps.rb
122
+ - lib/spreewald_support/capybara_wrapper.rb
164
123
  - lib/spreewald_support/comparison.rb
165
124
  - lib/spreewald_support/compatibility.rb
166
125
  - lib/spreewald_support/custom_matchers.rb
@@ -175,12 +134,14 @@ files:
175
134
  - lib/spreewald_support/unsupported_email_header.rb
176
135
  - lib/spreewald_support/version.rb
177
136
  - lib/spreewald_support/web_steps_helpers.rb
137
+ - lib/spreewald_support/without_waiting.rb
178
138
  - lib/steps/follow_the_link.rb
179
139
  - lib/steps/show_me_the_mails.rb
180
140
  - spec/spec_helper.rb
181
141
  - spec/spreewald_support/comparision_spec.rb
182
142
  - spec/spreewald_support/mail_to_plaintext_converter_spec.rb
183
143
  - spec/spreewald_support/tolerance_for_selenium_sync_issues_spec.rb
144
+ - spec/spreewald_support/without_waiting_spec.rb
184
145
  - spec/steps/follow_the_link_spec.rb
185
146
  - spec/steps/show_me_the_mails_spec.rb
186
147
  - spec/support/world.rb
@@ -354,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
315
  - !ruby/object:Gem::Version
355
316
  version: '0'
356
317
  requirements: []
357
- rubygems_version: 3.4.20
318
+ rubygems_version: 3.4.1
358
319
  signing_key:
359
320
  specification_version: 4
360
321
  summary: Collection of useful cucumber steps.