capybara-ui 1.0.0 → 1.3.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 +5 -5
- data/lib/capybara/ui/capybara.rb +0 -1
- data/lib/capybara/ui/checkpoint.rb +0 -5
- data/lib/capybara/ui/matchers.rb +26 -6
- data/lib/capybara/ui/rspec.rb +3 -0
- data/lib/capybara/ui/version.rb +1 -1
- data/lib/capybara/ui/widgets.rb +1 -1
- data/lib/capybara/ui/widgets/cucumber_methods.rb +2 -10
- data/lib/capybara/ui/widgets/field_group.rb +1 -1
- data/lib/capybara/ui/widgets/list.rb +3 -1
- data/lib/capybara/ui/widgets/list_item.rb +2 -2
- data/lib/capybara/ui/widgets/string_value.rb +7 -1
- data/lib/capybara/ui/widgets/widget/node_filter.rb +10 -6
- metadata +70 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 566be4cd822be8a8a26f04c7158994d224e36c8d47310c13c4197c3673628510
|
4
|
+
data.tar.gz: 64cdb5bb0c58acce07a3ed901d1f119b2723abe336aacf54f587e58169c990d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef9ae00b13c0dc0de05ee6fce7866fe69468a5abb63426e3bc15c34f0f3ed93722fb4c2317ed7fe4461e9759d2d8200f64fc2343e89fc443c16e94a40ebd20a3
|
7
|
+
data.tar.gz: c03f740d4457a54f8e29a31aa9d2552073e99641b2de1c4f38044298c9e9510b0bc7a261256f8148596d055b4c32600ea7fb3a4d12c09060b2b5e5bc3880e440
|
data/lib/capybara/ui/capybara.rb
CHANGED
@@ -14,11 +14,6 @@ module Capybara
|
|
14
14
|
|
15
15
|
self.rescuable_errors = [StandardError]
|
16
16
|
|
17
|
-
if defined?(RSpec)
|
18
|
-
require 'rspec/expectations'
|
19
|
-
self.rescuable_errors << RSpec::Expectations::ExpectationNotMetError
|
20
|
-
end
|
21
|
-
|
22
17
|
class Timer
|
23
18
|
class Frozen < StandardError; end
|
24
19
|
|
data/lib/capybara/ui/matchers.rb
CHANGED
@@ -1,12 +1,20 @@
|
|
1
|
+
def permitted_rspec_version?
|
2
|
+
defined? RSpec && actual_rspec_expectations_version >= required_rspec_expectations_version
|
3
|
+
end
|
4
|
+
|
5
|
+
def actual_rspec_expectations_version
|
6
|
+
defined? RSpec && Gem::Version.new(RSpec::Expectations::Version::STRING)
|
7
|
+
end
|
8
|
+
|
9
|
+
def required_rspec_expectations_version
|
10
|
+
Gem::Version.new(Capybara::UI::OptionalDependencies::RSPEC_VERSION)
|
11
|
+
end
|
12
|
+
|
1
13
|
begin
|
2
14
|
require 'rspec/matchers'
|
3
|
-
require 'rspec/version'
|
15
|
+
require 'rspec/expectations/version'
|
4
16
|
|
5
|
-
|
6
|
-
raise LoadError,
|
7
|
-
"requires RSpec version #{Capybara::UI::OptionalDependencies::RSPEC_VERSION} or later. " \
|
8
|
-
"You have #{RSpec::Version::STRING}."
|
9
|
-
end
|
17
|
+
raise LoadError unless permitted_rspec_version?
|
10
18
|
|
11
19
|
RSpec::Matchers.define :see do |widget_name, *args|
|
12
20
|
match do |role|
|
@@ -17,6 +25,10 @@ begin
|
|
17
25
|
end
|
18
26
|
end
|
19
27
|
|
28
|
+
failure_message do
|
29
|
+
"Could not find widget(#{widget_name}, args.join(', ')) on page."
|
30
|
+
end
|
31
|
+
|
20
32
|
match_when_negated do |role|
|
21
33
|
begin
|
22
34
|
eventually { !role.see?(widget_name, *args) }
|
@@ -24,5 +36,13 @@ begin
|
|
24
36
|
false
|
25
37
|
end
|
26
38
|
end
|
39
|
+
|
40
|
+
failure_message_when_negated do
|
41
|
+
"Unexpectedly found widget(#{widget_name}, args.join(', ')) on page."
|
42
|
+
end
|
27
43
|
end
|
44
|
+
|
45
|
+
rescue LoadError
|
46
|
+
"RSpec Expectations version #{required_rspec_expectations_version} or later is required. " \
|
47
|
+
"You have #{actual_rspec_expectations_version}."
|
28
48
|
end
|
data/lib/capybara/ui/version.rb
CHANGED
data/lib/capybara/ui/widgets.rb
CHANGED
@@ -2,7 +2,7 @@ module Capybara
|
|
2
2
|
module UI
|
3
3
|
module CucumberMethods
|
4
4
|
begin
|
5
|
-
require 'cucumber/
|
5
|
+
require 'cucumber/multiline_argument/data_table'
|
6
6
|
|
7
7
|
# Compares this widget with the given Cucumber +table+.
|
8
8
|
#
|
@@ -24,7 +24,7 @@ module Capybara
|
|
24
24
|
to_table = self.to_table
|
25
25
|
|
26
26
|
if ignore_case == true
|
27
|
-
table =
|
27
|
+
table = Cucumber::MultilineArgument::DataTable.from(downcase_array(table.raw))
|
28
28
|
to_table = downcase_array(to_table)
|
29
29
|
end
|
30
30
|
|
@@ -33,10 +33,6 @@ module Capybara
|
|
33
33
|
|
34
34
|
private
|
35
35
|
|
36
|
-
def downcase_table(table)
|
37
|
-
new_cucumber_table downcase_array(table.raw)
|
38
|
-
end
|
39
|
-
|
40
36
|
def downcase_array(array)
|
41
37
|
array.map do |item|
|
42
38
|
case item
|
@@ -63,10 +59,6 @@ module Capybara
|
|
63
59
|
end
|
64
60
|
end
|
65
61
|
|
66
|
-
def new_cucumber_table(table)
|
67
|
-
Cucumber::Ast::Table.new(table)
|
68
|
-
end
|
69
|
-
|
70
62
|
rescue LoadError
|
71
63
|
# *crickets*
|
72
64
|
end
|
@@ -2,7 +2,7 @@ module Capybara
|
|
2
2
|
module UI
|
3
3
|
class ListItem < Widget
|
4
4
|
# Returns this ListItem's contents formatted as a row, for comparison with a
|
5
|
-
# Cucumber::
|
5
|
+
# Cucumber::MultilineArgument::DataTable. By default, it simply returns an array with a single
|
6
6
|
# element--the widget's text.
|
7
7
|
#
|
8
8
|
# In general, this method will be called by List#to_table.
|
@@ -13,7 +13,7 @@ module Capybara
|
|
13
13
|
# Usually, if the default return value isn't what you want, you'll probably
|
14
14
|
# want to return a Hash where both keys and values are strings, so that you
|
15
15
|
# don't need to worry about column order when you pass the table to
|
16
|
-
# Cucumber::
|
16
|
+
# Cucumber::MultilineArgument::DataTable#diff!.
|
17
17
|
#
|
18
18
|
# See List#to_table for more information.
|
19
19
|
def to_row
|
@@ -2,7 +2,13 @@ module Capybara
|
|
2
2
|
module UI
|
3
3
|
class StringValue < String
|
4
4
|
def to_date(format = nil)
|
5
|
-
|
5
|
+
if format
|
6
|
+
Date.strptime(self, format)
|
7
|
+
elsif defined?(super)
|
8
|
+
super()
|
9
|
+
else
|
10
|
+
Date.parse(self)
|
11
|
+
end
|
6
12
|
end
|
7
13
|
|
8
14
|
def to_key
|
@@ -9,19 +9,23 @@ module Capybara
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def node(parent_widget, *args)
|
12
|
-
|
12
|
+
a, kw = capybara_selector(*args)
|
13
|
+
parent_widget.root.find(*a, **kw)
|
13
14
|
end
|
14
15
|
|
15
16
|
def node?(parent_widget, *args)
|
16
|
-
|
17
|
+
a, kw = capybara_selector(*args)
|
18
|
+
parent_widget.root.has_selector?(*a, **kw)
|
17
19
|
end
|
18
20
|
|
19
21
|
def nodeless?(parent_widget, *args)
|
20
|
-
|
22
|
+
a, kw = capybara_selector(*args)
|
23
|
+
parent_widget.root.has_no_selector?(*a, **kw)
|
21
24
|
end
|
22
25
|
|
23
26
|
def nodes(parent_widget, *args)
|
24
|
-
|
27
|
+
a, kw = capybara_selector(*args)
|
28
|
+
parent_widget.root.all(*a, **kw)
|
25
29
|
end
|
26
30
|
|
27
31
|
private
|
@@ -39,9 +43,9 @@ module Capybara
|
|
39
43
|
defaults = {:wait => 0}
|
40
44
|
|
41
45
|
if Hash === selector.last
|
42
|
-
selector
|
46
|
+
return selector, defaults.merge(selector.pop)
|
43
47
|
else
|
44
|
-
selector
|
48
|
+
return selector, defaults
|
45
49
|
end
|
46
50
|
end
|
47
51
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Leal
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-03-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chronic
|
@@ -31,70 +31,98 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '3.0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '3.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rexml
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
name: rspec-given
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
45
59
|
requirements:
|
46
|
-
- - "
|
60
|
+
- - ">="
|
47
61
|
- !ruby/object:Gem::Version
|
48
|
-
version: 3.
|
62
|
+
version: '3.8'
|
49
63
|
type: :development
|
50
64
|
prerelease: false
|
51
65
|
version_requirements: !ruby/object:Gem::Requirement
|
52
66
|
requirements:
|
53
|
-
- - "
|
67
|
+
- - ">="
|
54
68
|
- !ruby/object:Gem::Version
|
55
|
-
version: 3.
|
69
|
+
version: '3.8'
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
71
|
+
name: selenium-webdriver
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
59
73
|
requirements:
|
60
|
-
- - "
|
74
|
+
- - ">="
|
61
75
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
76
|
+
version: '0'
|
63
77
|
type: :development
|
64
78
|
prerelease: false
|
65
79
|
version_requirements: !ruby/object:Gem::Requirement
|
66
80
|
requirements:
|
67
|
-
- - "
|
81
|
+
- - ">="
|
68
82
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
83
|
+
version: '0'
|
70
84
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
85
|
+
name: webdrivers
|
72
86
|
requirement: !ruby/object:Gem::Requirement
|
73
87
|
requirements:
|
74
|
-
- - "
|
88
|
+
- - ">="
|
75
89
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
90
|
+
version: '0'
|
77
91
|
type: :development
|
78
92
|
prerelease: false
|
79
93
|
version_requirements: !ruby/object:Gem::Requirement
|
80
94
|
requirements:
|
81
|
-
- - "
|
95
|
+
- - ">="
|
82
96
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: cuprite
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
84
112
|
- !ruby/object:Gem::Dependency
|
85
113
|
name: cucumber
|
86
114
|
requirement: !ruby/object:Gem::Requirement
|
87
115
|
requirements:
|
88
|
-
- - "
|
116
|
+
- - ">="
|
89
117
|
- !ruby/object:Gem::Version
|
90
|
-
version:
|
118
|
+
version: '5.3'
|
91
119
|
type: :development
|
92
120
|
prerelease: false
|
93
121
|
version_requirements: !ruby/object:Gem::Requirement
|
94
122
|
requirements:
|
95
|
-
- - "
|
123
|
+
- - ">="
|
96
124
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
125
|
+
version: '5.3'
|
98
126
|
- !ruby/object:Gem::Dependency
|
99
127
|
name: pry
|
100
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +151,20 @@ dependencies:
|
|
123
151
|
- - ">="
|
124
152
|
- !ruby/object:Gem::Version
|
125
153
|
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: puma
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
126
168
|
- !ruby/object:Gem::Dependency
|
127
169
|
name: sinatra
|
128
170
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,16 +185,16 @@ dependencies:
|
|
143
185
|
requirements:
|
144
186
|
- - "~>"
|
145
187
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
188
|
+
version: 6.1.0
|
147
189
|
type: :development
|
148
190
|
prerelease: false
|
149
191
|
version_requirements: !ruby/object:Gem::Requirement
|
150
192
|
requirements:
|
151
193
|
- - "~>"
|
152
194
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
195
|
+
version: 6.1.0
|
154
196
|
- !ruby/object:Gem::Dependency
|
155
|
-
name:
|
197
|
+
name: simplecov
|
156
198
|
requirement: !ruby/object:Gem::Requirement
|
157
199
|
requirements:
|
158
200
|
- - ">="
|
@@ -172,7 +214,7 @@ description: Capybara-UI (formerly called Dill) is a Capybara abstraction that m
|
|
172
214
|
easier.
|
173
215
|
email:
|
174
216
|
- dleal@mojotech.com
|
175
|
-
-
|
217
|
+
- ops@mojotech.com
|
176
218
|
executables: []
|
177
219
|
extensions: []
|
178
220
|
extra_rdoc_files: []
|
@@ -190,6 +232,7 @@ files:
|
|
190
232
|
- lib/capybara/ui/rails.rb
|
191
233
|
- lib/capybara/ui/rails/role.rb
|
192
234
|
- lib/capybara/ui/role.rb
|
235
|
+
- lib/capybara/ui/rspec.rb
|
193
236
|
- lib/capybara/ui/text_table.rb
|
194
237
|
- lib/capybara/ui/text_table/cell_text.rb
|
195
238
|
- lib/capybara/ui/text_table/mapping.rb
|
@@ -236,8 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
236
279
|
- !ruby/object:Gem::Version
|
237
280
|
version: '0'
|
238
281
|
requirements: []
|
239
|
-
|
240
|
-
rubygems_version: 2.4.8
|
282
|
+
rubygems_version: 3.0.3
|
241
283
|
signing_key:
|
242
284
|
specification_version: 4
|
243
285
|
summary: A set of helpers to ease integration testing
|