playoffs 1.0.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 +7 -0
- data/.bundle/config +2 -0
- data/.editorconfig +8 -0
- data/.github/workflows/ci.yaml +29 -0
- data/.gitignore +8 -0
- data/.rubocop.yml +34 -0
- data/.tool-versions +1 -0
- data/.vscode/settings.json +5 -0
- data/CHANGELOG.md +3 -0
- data/CODE_OF_CONDUCT.md +73 -0
- data/Gemfile +5 -0
- data/Guardfile +17 -0
- data/LICENSE +5 -0
- data/README.md +245 -0
- data/Rakefile +11 -0
- data/bin/_guard-core +27 -0
- data/bin/bundle +109 -0
- data/bin/bundle-audit +27 -0
- data/bin/bundler-audit +27 -0
- data/bin/coderay +27 -0
- data/bin/console +11 -0
- data/bin/guard +27 -0
- data/bin/htmldiff +27 -0
- data/bin/ldiff +27 -0
- data/bin/listen +27 -0
- data/bin/playoffs +27 -0
- data/bin/pry +27 -0
- data/bin/racc +27 -0
- data/bin/rake +27 -0
- data/bin/rspec +27 -0
- data/bin/rubocop +27 -0
- data/bin/ruby-parse +27 -0
- data/bin/ruby-rewrite +27 -0
- data/bin/spoom +27 -0
- data/bin/srb +27 -0
- data/bin/srb-rbi +27 -0
- data/bin/tapioca +27 -0
- data/bin/thor +27 -0
- data/bin/yard +27 -0
- data/bin/yardoc +27 -0
- data/bin/yri +27 -0
- data/exe/playoffs +7 -0
- data/lib/playoffs/basketball.rb +120 -0
- data/lib/playoffs/best_of.rb +38 -0
- data/lib/playoffs/cli.rb +201 -0
- data/lib/playoffs/contestant.rb +8 -0
- data/lib/playoffs/round.rb +42 -0
- data/lib/playoffs/series.rb +167 -0
- data/lib/playoffs/team.rb +7 -0
- data/lib/playoffs/tournament/bracketable.rb +93 -0
- data/lib/playoffs/tournament/roundable.rb +53 -0
- data/lib/playoffs/tournament.rb +61 -0
- data/lib/playoffs/version.rb +6 -0
- data/lib/playoffs.rb +26 -0
- data/playoffs.gemspec +49 -0
- data/sorbet/config +4 -0
- data/sorbet/rbi/annotations/.gitattributes +1 -0
- data/sorbet/rbi/annotations/rainbow.rbi +269 -0
- data/sorbet/rbi/gems/.gitattributes +1 -0
- data/sorbet/rbi/gems/ansi@1.5.0.rbi +688 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
- data/sorbet/rbi/gems/bundler-audit@0.9.1.rbi +309 -0
- data/sorbet/rbi/gems/coderay@1.1.3.rbi +3426 -0
- data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
- data/sorbet/rbi/gems/docile@1.4.0.rbi +377 -0
- data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
- data/sorbet/rbi/gems/ffi@1.16.3.rbi +9 -0
- data/sorbet/rbi/gems/formatador@1.1.0.rbi +9 -0
- data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +67 -0
- data/sorbet/rbi/gems/guard-rspec@4.7.3.rbi +563 -0
- data/sorbet/rbi/gems/guard@2.18.1.rbi +9 -0
- data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
- data/sorbet/rbi/gems/listen@3.9.0.rbi +9 -0
- data/sorbet/rbi/gems/lumberjack@1.2.10.rbi +9 -0
- data/sorbet/rbi/gems/method_source@1.1.0.rbi +304 -0
- data/sorbet/rbi/gems/nenv@0.3.0.rbi +9 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
- data/sorbet/rbi/gems/notiffany@0.1.3.rbi +9 -0
- data/sorbet/rbi/gems/parallel@1.24.0.rbi +280 -0
- data/sorbet/rbi/gems/parser@3.3.1.0.rbi +7238 -0
- data/sorbet/rbi/gems/primitive@1.0.0.rbi +58 -0
- data/sorbet/rbi/gems/prism@0.29.0.rbi +37987 -0
- data/sorbet/rbi/gems/pry@0.14.2.rbi +10069 -0
- data/sorbet/rbi/gems/racc@1.7.3.rbi +162 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
- data/sorbet/rbi/gems/rake@13.2.1.rbi +3028 -0
- data/sorbet/rbi/gems/rb-fsevent@0.11.2.rbi +9 -0
- data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +9 -0
- data/sorbet/rbi/gems/rbi@0.1.13.rbi +3078 -0
- data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
- data/sorbet/rbi/gems/rexml@3.2.8.rbi +4794 -0
- data/sorbet/rbi/gems/rspec-core@3.13.0.rbi +10874 -0
- data/sorbet/rbi/gems/rspec-expectations@3.13.0.rbi +8154 -0
- data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
- data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
- data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
- data/sorbet/rbi/gems/rubocop-ast@1.31.3.rbi +7159 -0
- data/sorbet/rbi/gems/rubocop-capybara@2.20.0.rbi +1208 -0
- data/sorbet/rbi/gems/rubocop-factory_bot@2.25.1.rbi +928 -0
- data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
- data/sorbet/rbi/gems/rubocop-rspec@2.29.2.rbi +8247 -0
- data/sorbet/rbi/gems/rubocop-rspec_rails@2.28.3.rbi +911 -0
- data/sorbet/rbi/gems/rubocop-sorbet@0.8.3.rbi +1607 -0
- data/sorbet/rbi/gems/rubocop@1.63.5.rbi +57788 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
- data/sorbet/rbi/gems/shellany@0.0.1.rbi +9 -0
- data/sorbet/rbi/gems/simplecov-console@0.9.1.rbi +103 -0
- data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +217 -0
- data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
- data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
- data/sorbet/rbi/gems/sorbet-runtime-stub@0.2.0.rbi +8 -0
- data/sorbet/rbi/gems/spoom@1.3.2.rbi +4420 -0
- data/sorbet/rbi/gems/strscan@3.1.0.rbi +9 -0
- data/sorbet/rbi/gems/tapioca@0.14.2.rbi +3539 -0
- data/sorbet/rbi/gems/terminal-table@3.0.2.rbi +9 -0
- data/sorbet/rbi/gems/thor@1.3.1.rbi +4318 -0
- data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
- data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
- data/sorbet/rbi/gems/yard@0.9.36.rbi +18085 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +4 -0
- metadata +383 -0
|
@@ -0,0 +1,1208 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
# DO NOT EDIT MANUALLY
|
|
4
|
+
# This is an autogenerated file for types exported from the `rubocop-capybara` gem.
|
|
5
|
+
# Please instead update this file by running `bin/tapioca gem rubocop-capybara`.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#3
|
|
9
|
+
module RuboCop; end
|
|
10
|
+
|
|
11
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#4
|
|
12
|
+
module RuboCop::Cop; end
|
|
13
|
+
|
|
14
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#5
|
|
15
|
+
module RuboCop::Cop::Capybara; end
|
|
16
|
+
|
|
17
|
+
# Help methods for capybara.
|
|
18
|
+
#
|
|
19
|
+
# @api private
|
|
20
|
+
#
|
|
21
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#8
|
|
22
|
+
module RuboCop::Cop::Capybara::CapybaraHelp
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
# @api private
|
|
26
|
+
# @example
|
|
27
|
+
# common_attributes?('a[focused]') # => true
|
|
28
|
+
# common_attributes?('button[focused][visible]') # => true
|
|
29
|
+
# common_attributes?('table[id=some-id]') # => true
|
|
30
|
+
# common_attributes?('h1[invalid]') # => false
|
|
31
|
+
# @param selector [String]
|
|
32
|
+
# @return [Boolean]
|
|
33
|
+
#
|
|
34
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#61
|
|
35
|
+
def common_attributes?(selector); end
|
|
36
|
+
|
|
37
|
+
# @api private
|
|
38
|
+
# @param node [RuboCop::AST::SendNode]
|
|
39
|
+
# @param option [Symbol]
|
|
40
|
+
# @return [Boolean]
|
|
41
|
+
#
|
|
42
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#125
|
|
43
|
+
def include_option?(node, option); end
|
|
44
|
+
|
|
45
|
+
# @api private
|
|
46
|
+
# @example
|
|
47
|
+
# replaceable_attributes?('table[id=some-id]') # => true
|
|
48
|
+
# replaceable_attributes?('a[focused]') # => false
|
|
49
|
+
# @param attrs [Array<String>]
|
|
50
|
+
# @return [Boolean]
|
|
51
|
+
#
|
|
52
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#70
|
|
53
|
+
def replaceable_attributes?(attrs); end
|
|
54
|
+
|
|
55
|
+
# @api private
|
|
56
|
+
# @param node [RuboCop::AST::SendNode]
|
|
57
|
+
# @param element [String]
|
|
58
|
+
# @param attrs [Array<String>]
|
|
59
|
+
# @return [Boolean]
|
|
60
|
+
#
|
|
61
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#108
|
|
62
|
+
def replaceable_element?(node, element, attrs); end
|
|
63
|
+
|
|
64
|
+
# @api private
|
|
65
|
+
# @param node [RuboCop::AST::SendNode]
|
|
66
|
+
# @param locator [String]
|
|
67
|
+
# @param element [String]
|
|
68
|
+
# @return [Boolean]
|
|
69
|
+
#
|
|
70
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#45
|
|
71
|
+
def replaceable_option?(node, locator, element); end
|
|
72
|
+
|
|
73
|
+
# @api private
|
|
74
|
+
# @param pseudo_class [String]
|
|
75
|
+
# @param locator [String]
|
|
76
|
+
# @return [Boolean]
|
|
77
|
+
#
|
|
78
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#85
|
|
79
|
+
def replaceable_pseudo_class?(pseudo_class, locator); end
|
|
80
|
+
|
|
81
|
+
# @api private
|
|
82
|
+
# @param locator [String]
|
|
83
|
+
# @return [Boolean]
|
|
84
|
+
#
|
|
85
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#96
|
|
86
|
+
def replaceable_pseudo_class_not?(locator); end
|
|
87
|
+
|
|
88
|
+
# @api private
|
|
89
|
+
# @param locator [String]
|
|
90
|
+
# @return [Boolean]
|
|
91
|
+
#
|
|
92
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#76
|
|
93
|
+
def replaceable_pseudo_classes?(locator); end
|
|
94
|
+
|
|
95
|
+
# @api private
|
|
96
|
+
# @param node [RuboCop::AST::SendNode]
|
|
97
|
+
# @param attrs [Array<String>]
|
|
98
|
+
# @return [Boolean]
|
|
99
|
+
#
|
|
100
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#118
|
|
101
|
+
def replaceable_to_link?(node, attrs); end
|
|
102
|
+
|
|
103
|
+
class << self
|
|
104
|
+
# @api private
|
|
105
|
+
# @example
|
|
106
|
+
# common_attributes?('a[focused]') # => true
|
|
107
|
+
# common_attributes?('button[focused][visible]') # => true
|
|
108
|
+
# common_attributes?('table[id=some-id]') # => true
|
|
109
|
+
# common_attributes?('h1[invalid]') # => false
|
|
110
|
+
# @param selector [String]
|
|
111
|
+
# @return [Boolean]
|
|
112
|
+
#
|
|
113
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#61
|
|
114
|
+
def common_attributes?(selector); end
|
|
115
|
+
|
|
116
|
+
# @api private
|
|
117
|
+
# @param node [RuboCop::AST::SendNode]
|
|
118
|
+
# @param option [Symbol]
|
|
119
|
+
# @return [Boolean]
|
|
120
|
+
#
|
|
121
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#125
|
|
122
|
+
def include_option?(node, option); end
|
|
123
|
+
|
|
124
|
+
# @api private
|
|
125
|
+
# @example
|
|
126
|
+
# replaceable_attributes?('table[id=some-id]') # => true
|
|
127
|
+
# replaceable_attributes?('a[focused]') # => false
|
|
128
|
+
# @param attrs [Array<String>]
|
|
129
|
+
# @return [Boolean]
|
|
130
|
+
#
|
|
131
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#70
|
|
132
|
+
def replaceable_attributes?(attrs); end
|
|
133
|
+
|
|
134
|
+
# @api private
|
|
135
|
+
# @param node [RuboCop::AST::SendNode]
|
|
136
|
+
# @param element [String]
|
|
137
|
+
# @param attrs [Array<String>]
|
|
138
|
+
# @return [Boolean]
|
|
139
|
+
#
|
|
140
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#108
|
|
141
|
+
def replaceable_element?(node, element, attrs); end
|
|
142
|
+
|
|
143
|
+
# @api private
|
|
144
|
+
# @param node [RuboCop::AST::SendNode]
|
|
145
|
+
# @param locator [String]
|
|
146
|
+
# @param element [String]
|
|
147
|
+
# @return [Boolean]
|
|
148
|
+
#
|
|
149
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#45
|
|
150
|
+
def replaceable_option?(node, locator, element); end
|
|
151
|
+
|
|
152
|
+
# @api private
|
|
153
|
+
# @param pseudo_class [String]
|
|
154
|
+
# @param locator [String]
|
|
155
|
+
# @return [Boolean]
|
|
156
|
+
#
|
|
157
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#85
|
|
158
|
+
def replaceable_pseudo_class?(pseudo_class, locator); end
|
|
159
|
+
|
|
160
|
+
# @api private
|
|
161
|
+
# @param locator [String]
|
|
162
|
+
# @return [Boolean]
|
|
163
|
+
#
|
|
164
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#96
|
|
165
|
+
def replaceable_pseudo_class_not?(locator); end
|
|
166
|
+
|
|
167
|
+
# @api private
|
|
168
|
+
# @param locator [String]
|
|
169
|
+
# @return [Boolean]
|
|
170
|
+
#
|
|
171
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#76
|
|
172
|
+
def replaceable_pseudo_classes?(locator); end
|
|
173
|
+
|
|
174
|
+
# @api private
|
|
175
|
+
# @param node [RuboCop::AST::SendNode]
|
|
176
|
+
# @param attrs [Array<String>]
|
|
177
|
+
# @return [Boolean]
|
|
178
|
+
#
|
|
179
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#118
|
|
180
|
+
def replaceable_to_link?(node, attrs); end
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
# @api private
|
|
185
|
+
#
|
|
186
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#9
|
|
187
|
+
RuboCop::Cop::Capybara::CapybaraHelp::COMMON_OPTIONS = T.let(T.unsafe(nil), Array)
|
|
188
|
+
|
|
189
|
+
# @api private
|
|
190
|
+
#
|
|
191
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#12
|
|
192
|
+
RuboCop::Cop::Capybara::CapybaraHelp::SPECIFIC_OPTIONS = T.let(T.unsafe(nil), Hash)
|
|
193
|
+
|
|
194
|
+
# @api private
|
|
195
|
+
#
|
|
196
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#35
|
|
197
|
+
RuboCop::Cop::Capybara::CapybaraHelp::SPECIFIC_PSEUDO_CLASSES = T.let(T.unsafe(nil), Array)
|
|
198
|
+
|
|
199
|
+
# Checks for methods of button or link clicks.
|
|
200
|
+
#
|
|
201
|
+
# By default, prefer to use `click_link_or_button` or `click_on`.
|
|
202
|
+
# These methods offer a weaker coupling between the test and HTML,
|
|
203
|
+
# allowing for a more faithful reflection of how the user behaves.
|
|
204
|
+
#
|
|
205
|
+
# You can set `EnforcedStyle: strict` to prefer the use of
|
|
206
|
+
# `click_link` and `click_button`, but this is a deprecated setting.
|
|
207
|
+
#
|
|
208
|
+
# @example EnforcedStyle: link_or_button (default)
|
|
209
|
+
# # bad
|
|
210
|
+
# click_link('foo')
|
|
211
|
+
# click_button('foo')
|
|
212
|
+
#
|
|
213
|
+
# # good
|
|
214
|
+
# click_link_or_button('foo')
|
|
215
|
+
# click_on('foo')
|
|
216
|
+
# @example EnforcedStyle: strict
|
|
217
|
+
# # bad
|
|
218
|
+
# click_link_or_button('foo')
|
|
219
|
+
# click_on('foo')
|
|
220
|
+
#
|
|
221
|
+
# # good
|
|
222
|
+
# click_link('foo')
|
|
223
|
+
# click_button('foo')
|
|
224
|
+
#
|
|
225
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#33
|
|
226
|
+
class RuboCop::Cop::Capybara::ClickLinkOrButtonStyle < ::RuboCop::Cop::Base
|
|
227
|
+
include ::RuboCop::Cop::ConfigurableEnforcedStyle
|
|
228
|
+
|
|
229
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#44
|
|
230
|
+
def on_send(node); end
|
|
231
|
+
|
|
232
|
+
private
|
|
233
|
+
|
|
234
|
+
# @return [Boolean]
|
|
235
|
+
#
|
|
236
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#69
|
|
237
|
+
def link_or_button_method?(node); end
|
|
238
|
+
|
|
239
|
+
# @return [Boolean]
|
|
240
|
+
#
|
|
241
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#52
|
|
242
|
+
def offense?(node); end
|
|
243
|
+
|
|
244
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#57
|
|
245
|
+
def offense_message(node); end
|
|
246
|
+
|
|
247
|
+
# @return [Boolean]
|
|
248
|
+
#
|
|
249
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#65
|
|
250
|
+
def strict_method?(node); end
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#41
|
|
254
|
+
RuboCop::Cop::Capybara::ClickLinkOrButtonStyle::CLICK_LINK_OR_BUTTON = T.let(T.unsafe(nil), Array)
|
|
255
|
+
|
|
256
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#38
|
|
257
|
+
RuboCop::Cop::Capybara::ClickLinkOrButtonStyle::MSG_CLICK_LINK_OR_BUTTON = T.let(T.unsafe(nil), String)
|
|
258
|
+
|
|
259
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#36
|
|
260
|
+
RuboCop::Cop::Capybara::ClickLinkOrButtonStyle::MSG_STRICT = T.let(T.unsafe(nil), String)
|
|
261
|
+
|
|
262
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#42
|
|
263
|
+
RuboCop::Cop::Capybara::ClickLinkOrButtonStyle::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
264
|
+
|
|
265
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/click_link_or_button_style.rb#40
|
|
266
|
+
RuboCop::Cop::Capybara::ClickLinkOrButtonStyle::STRICT_METHODS = T.let(T.unsafe(nil), Array)
|
|
267
|
+
|
|
268
|
+
# Css selector parser.
|
|
269
|
+
#
|
|
270
|
+
# @api private
|
|
271
|
+
#
|
|
272
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_attributes_parser.rb#8
|
|
273
|
+
class RuboCop::Cop::Capybara::CssAttributesParser
|
|
274
|
+
# @api private
|
|
275
|
+
# @return [CssAttributesParser] a new instance of CssAttributesParser
|
|
276
|
+
#
|
|
277
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_attributes_parser.rb#9
|
|
278
|
+
def initialize(selector); end
|
|
279
|
+
|
|
280
|
+
# @api private
|
|
281
|
+
# @return [Array<String>]
|
|
282
|
+
#
|
|
283
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_attributes_parser.rb#18
|
|
284
|
+
def parse; end
|
|
285
|
+
|
|
286
|
+
private
|
|
287
|
+
|
|
288
|
+
# @api private
|
|
289
|
+
# @example
|
|
290
|
+
# normalize_value('true') # => true
|
|
291
|
+
# normalize_value('false') # => false
|
|
292
|
+
# normalize_value(nil) # => nil
|
|
293
|
+
# normalize_value("foo") # => "'foo'"
|
|
294
|
+
# @param value [String]
|
|
295
|
+
# @return [Boolean, String]
|
|
296
|
+
#
|
|
297
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_attributes_parser.rb#61
|
|
298
|
+
def normalize_value(value); end
|
|
299
|
+
|
|
300
|
+
# @api private
|
|
301
|
+
#
|
|
302
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_attributes_parser.rb#42
|
|
303
|
+
def on_bracket_end; end
|
|
304
|
+
|
|
305
|
+
# @api private
|
|
306
|
+
#
|
|
307
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_attributes_parser.rb#33
|
|
308
|
+
def on_bracket_start; end
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
# Helps parsing css selector.
|
|
312
|
+
#
|
|
313
|
+
# @api private
|
|
314
|
+
#
|
|
315
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#8
|
|
316
|
+
module RuboCop::Cop::Capybara::CssSelector
|
|
317
|
+
private
|
|
318
|
+
|
|
319
|
+
# @api private
|
|
320
|
+
# @example
|
|
321
|
+
# attribute?('[attribute]') # => true
|
|
322
|
+
# attribute?('attribute') # => false
|
|
323
|
+
# @param selector [String]
|
|
324
|
+
# @return [Boolean]
|
|
325
|
+
#
|
|
326
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#48
|
|
327
|
+
def attribute?(selector); end
|
|
328
|
+
|
|
329
|
+
# @api private
|
|
330
|
+
# @example
|
|
331
|
+
# attributes('a[foo-bar_baz]') # => {"foo-bar_baz=>nil}
|
|
332
|
+
# attributes('button[foo][bar=baz]') # => {"foo"=>nil, "bar"=>"'baz'"}
|
|
333
|
+
# attributes('table[foo=bar]') # => {"foo"=>"'bar'"}
|
|
334
|
+
# attributes('[foo="bar[baz][qux]"]') # => {"foo"=>"'bar[baz][qux]'"}
|
|
335
|
+
# @param selector [String]
|
|
336
|
+
# @return [Array<String>]
|
|
337
|
+
#
|
|
338
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#59
|
|
339
|
+
def attributes(selector); end
|
|
340
|
+
|
|
341
|
+
# @api private
|
|
342
|
+
# @example
|
|
343
|
+
# classes('#some-id') # => []
|
|
344
|
+
# classes('.some-cls') # => ['some-cls']
|
|
345
|
+
# classes('#some-id.some-cls') # => ['some-cls']
|
|
346
|
+
# classes('#some-id.cls1.cls2') # => ['cls1', 'cls2']
|
|
347
|
+
# @param selector [String]
|
|
348
|
+
# @return [Array<String>]
|
|
349
|
+
#
|
|
350
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#39
|
|
351
|
+
def classes(selector); end
|
|
352
|
+
|
|
353
|
+
# @api private
|
|
354
|
+
# @example
|
|
355
|
+
# id('#some-id') # => some-id
|
|
356
|
+
# id('.some-cls') # => nil
|
|
357
|
+
# id('#some-id.cls') # => some-id
|
|
358
|
+
# @param selector [String]
|
|
359
|
+
# @return [String]
|
|
360
|
+
#
|
|
361
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#17
|
|
362
|
+
def id(selector); end
|
|
363
|
+
|
|
364
|
+
# @api private
|
|
365
|
+
# @example
|
|
366
|
+
# id?('#some-id') # => true
|
|
367
|
+
# id?('.some-cls') # => false
|
|
368
|
+
# @param selector [String]
|
|
369
|
+
# @return [Boolean]
|
|
370
|
+
#
|
|
371
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#28
|
|
372
|
+
def id?(selector); end
|
|
373
|
+
|
|
374
|
+
# @api private
|
|
375
|
+
# @example
|
|
376
|
+
# multiple_selectors?('a.cls b#id') # => true
|
|
377
|
+
# multiple_selectors?('a.cls') # => false
|
|
378
|
+
# @param selector [String]
|
|
379
|
+
# @return [Boolean]
|
|
380
|
+
#
|
|
381
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#82
|
|
382
|
+
def multiple_selectors?(selector); end
|
|
383
|
+
|
|
384
|
+
# @api private
|
|
385
|
+
# @example
|
|
386
|
+
# pseudo_classes('button:not([disabled])') # => ['not()']
|
|
387
|
+
# pseudo_classes('a:enabled:not([valid])') # => ['enabled', 'not()']
|
|
388
|
+
# @param selector [String]
|
|
389
|
+
# @return [Array<String>]
|
|
390
|
+
#
|
|
391
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#68
|
|
392
|
+
def pseudo_classes(selector); end
|
|
393
|
+
|
|
394
|
+
class << self
|
|
395
|
+
# @api private
|
|
396
|
+
# @example
|
|
397
|
+
# attribute?('[attribute]') # => true
|
|
398
|
+
# attribute?('attribute') # => false
|
|
399
|
+
# @param selector [String]
|
|
400
|
+
# @return [Boolean]
|
|
401
|
+
#
|
|
402
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#48
|
|
403
|
+
def attribute?(selector); end
|
|
404
|
+
|
|
405
|
+
# @api private
|
|
406
|
+
# @example
|
|
407
|
+
# attributes('a[foo-bar_baz]') # => {"foo-bar_baz=>nil}
|
|
408
|
+
# attributes('button[foo][bar=baz]') # => {"foo"=>nil, "bar"=>"'baz'"}
|
|
409
|
+
# attributes('table[foo=bar]') # => {"foo"=>"'bar'"}
|
|
410
|
+
# attributes('[foo="bar[baz][qux]"]') # => {"foo"=>"'bar[baz][qux]'"}
|
|
411
|
+
# @param selector [String]
|
|
412
|
+
# @return [Array<String>]
|
|
413
|
+
#
|
|
414
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#59
|
|
415
|
+
def attributes(selector); end
|
|
416
|
+
|
|
417
|
+
# @api private
|
|
418
|
+
# @example
|
|
419
|
+
# classes('#some-id') # => []
|
|
420
|
+
# classes('.some-cls') # => ['some-cls']
|
|
421
|
+
# classes('#some-id.some-cls') # => ['some-cls']
|
|
422
|
+
# classes('#some-id.cls1.cls2') # => ['cls1', 'cls2']
|
|
423
|
+
# @param selector [String]
|
|
424
|
+
# @return [Array<String>]
|
|
425
|
+
#
|
|
426
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#39
|
|
427
|
+
def classes(selector); end
|
|
428
|
+
|
|
429
|
+
# @api private
|
|
430
|
+
# @example
|
|
431
|
+
# id('#some-id') # => some-id
|
|
432
|
+
# id('.some-cls') # => nil
|
|
433
|
+
# id('#some-id.cls') # => some-id
|
|
434
|
+
# @param selector [String]
|
|
435
|
+
# @return [String]
|
|
436
|
+
#
|
|
437
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#17
|
|
438
|
+
def id(selector); end
|
|
439
|
+
|
|
440
|
+
# @api private
|
|
441
|
+
# @example
|
|
442
|
+
# id?('#some-id') # => true
|
|
443
|
+
# id?('.some-cls') # => false
|
|
444
|
+
# @param selector [String]
|
|
445
|
+
# @return [Boolean]
|
|
446
|
+
#
|
|
447
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#28
|
|
448
|
+
def id?(selector); end
|
|
449
|
+
|
|
450
|
+
# @api private
|
|
451
|
+
# @example
|
|
452
|
+
# multiple_selectors?('a.cls b#id') # => true
|
|
453
|
+
# multiple_selectors?('a.cls') # => false
|
|
454
|
+
# @param selector [String]
|
|
455
|
+
# @return [Boolean]
|
|
456
|
+
#
|
|
457
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#82
|
|
458
|
+
def multiple_selectors?(selector); end
|
|
459
|
+
|
|
460
|
+
# @api private
|
|
461
|
+
# @example
|
|
462
|
+
# pseudo_classes('button:not([disabled])') # => ['not()']
|
|
463
|
+
# pseudo_classes('a:enabled:not([valid])') # => ['enabled', 'not()']
|
|
464
|
+
# @param selector [String]
|
|
465
|
+
# @return [Array<String>]
|
|
466
|
+
#
|
|
467
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#68
|
|
468
|
+
def pseudo_classes(selector); end
|
|
469
|
+
end
|
|
470
|
+
end
|
|
471
|
+
|
|
472
|
+
# Checks that no expectations are set on Capybara's `current_path`.
|
|
473
|
+
#
|
|
474
|
+
# The
|
|
475
|
+
# https://www.rubydoc.info/github/teamcapybara/capybara/master/Capybara/RSpecMatchers#have_current_path-instance_method[`have_current_path` matcher]
|
|
476
|
+
# should be used on `page` to set expectations on Capybara's
|
|
477
|
+
# current path, since it uses
|
|
478
|
+
# https://github.com/teamcapybara/capybara/blob/master/README.md#asynchronous-javascript-ajax-and-friends[Capybara's waiting functionality]
|
|
479
|
+
# which ensures that preceding actions (like `click_link`) have
|
|
480
|
+
# completed.
|
|
481
|
+
#
|
|
482
|
+
# This cop does not support autocorrection in some cases.
|
|
483
|
+
#
|
|
484
|
+
# @example
|
|
485
|
+
# # bad
|
|
486
|
+
# expect(current_path).to eq('/callback')
|
|
487
|
+
# expect(page.current_path).to eq('/callback')
|
|
488
|
+
#
|
|
489
|
+
# # good
|
|
490
|
+
# expect(page).to have_current_path('/callback', ignore_query: true)
|
|
491
|
+
#
|
|
492
|
+
# # bad (does not support autocorrection when `match` with a variable)
|
|
493
|
+
# expect(page).to match(variable)
|
|
494
|
+
#
|
|
495
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#29
|
|
496
|
+
class RuboCop::Cop::Capybara::CurrentPathExpectation < ::RuboCop::Cop::Base
|
|
497
|
+
include ::RuboCop::Cop::RangeHelp
|
|
498
|
+
extend ::RuboCop::Cop::AutoCorrector
|
|
499
|
+
|
|
500
|
+
# Supported matchers: eq(...) / match(/regexp/) / match('regexp')
|
|
501
|
+
#
|
|
502
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#46
|
|
503
|
+
def as_is_matcher(param0 = T.unsafe(nil)); end
|
|
504
|
+
|
|
505
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#40
|
|
506
|
+
def expectation_set_on_current_path(param0 = T.unsafe(nil)); end
|
|
507
|
+
|
|
508
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#63
|
|
509
|
+
def on_send(node); end
|
|
510
|
+
|
|
511
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#53
|
|
512
|
+
def regexp_node_matcher(param0 = T.unsafe(nil)); end
|
|
513
|
+
|
|
514
|
+
private
|
|
515
|
+
|
|
516
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#113
|
|
517
|
+
def add_argument_parentheses(corrector, arg_node); end
|
|
518
|
+
|
|
519
|
+
# `have_current_path` with no options will include the querystring
|
|
520
|
+
# while `page.current_path` does not.
|
|
521
|
+
# This ensures the option `ignore_query: true` is added
|
|
522
|
+
# except when `match` matcher.
|
|
523
|
+
#
|
|
524
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#131
|
|
525
|
+
def add_ignore_query_options(corrector, node, matcher_node); end
|
|
526
|
+
|
|
527
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#75
|
|
528
|
+
def autocorrect(corrector, node); end
|
|
529
|
+
|
|
530
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#99
|
|
531
|
+
def convert_regexp_node_to_literal(corrector, matcher_node, regexp_node); end
|
|
532
|
+
|
|
533
|
+
# @return [Boolean]
|
|
534
|
+
#
|
|
535
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#123
|
|
536
|
+
def method_call_with_no_parentheses?(arg_node); end
|
|
537
|
+
|
|
538
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#105
|
|
539
|
+
def regexp_node_to_regexp_expr(regexp_node); end
|
|
540
|
+
|
|
541
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#86
|
|
542
|
+
def rewrite_expectation(corrector, node, to_symbol, matcher_node); end
|
|
543
|
+
|
|
544
|
+
class << self
|
|
545
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#59
|
|
546
|
+
def autocorrect_incompatible_with; end
|
|
547
|
+
end
|
|
548
|
+
end
|
|
549
|
+
|
|
550
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#33
|
|
551
|
+
RuboCop::Cop::Capybara::CurrentPathExpectation::MSG = T.let(T.unsafe(nil), String)
|
|
552
|
+
|
|
553
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#37
|
|
554
|
+
RuboCop::Cop::Capybara::CurrentPathExpectation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
555
|
+
|
|
556
|
+
# Checks for usage of deprecated style methods.
|
|
557
|
+
#
|
|
558
|
+
# @example when using `assert_style`
|
|
559
|
+
# # bad
|
|
560
|
+
# page.find(:css, '#first').assert_style(display: 'block')
|
|
561
|
+
#
|
|
562
|
+
# # good
|
|
563
|
+
# page.find(:css, '#first').assert_matches_style(display: 'block')
|
|
564
|
+
# @example when using `has_style?`
|
|
565
|
+
# # bad
|
|
566
|
+
# expect(page.find(:css, 'first')
|
|
567
|
+
# .has_style?(display: 'block')).to be true
|
|
568
|
+
#
|
|
569
|
+
# # good
|
|
570
|
+
# expect(page.find(:css, 'first')
|
|
571
|
+
# .matches_style?(display: 'block')).to be true
|
|
572
|
+
# @example when using `have_style`
|
|
573
|
+
# # bad
|
|
574
|
+
# expect(page).to have_style(display: 'block')
|
|
575
|
+
#
|
|
576
|
+
# # good
|
|
577
|
+
# expect(page).to match_style(display: 'block')
|
|
578
|
+
#
|
|
579
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#31
|
|
580
|
+
class RuboCop::Cop::Capybara::MatchStyle < ::RuboCop::Cop::Base
|
|
581
|
+
extend ::RuboCop::Cop::AutoCorrector
|
|
582
|
+
|
|
583
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#42
|
|
584
|
+
def on_send(node); end
|
|
585
|
+
|
|
586
|
+
private
|
|
587
|
+
|
|
588
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#52
|
|
589
|
+
def message(node); end
|
|
590
|
+
end
|
|
591
|
+
|
|
592
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#34
|
|
593
|
+
RuboCop::Cop::Capybara::MatchStyle::MSG = T.let(T.unsafe(nil), String)
|
|
594
|
+
|
|
595
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#36
|
|
596
|
+
RuboCop::Cop::Capybara::MatchStyle::PREFERRED_METHOD = T.let(T.unsafe(nil), Hash)
|
|
597
|
+
|
|
598
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#35
|
|
599
|
+
RuboCop::Cop::Capybara::MatchStyle::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
600
|
+
|
|
601
|
+
# Enforces use of `have_no_*` or `not_to` for negated expectations.
|
|
602
|
+
#
|
|
603
|
+
# @example EnforcedStyle: have_no (default)
|
|
604
|
+
# # bad
|
|
605
|
+
# expect(page).not_to have_selector
|
|
606
|
+
# expect(page).not_to have_css('a')
|
|
607
|
+
#
|
|
608
|
+
# # good
|
|
609
|
+
# expect(page).to have_no_selector
|
|
610
|
+
# expect(page).to have_no_css('a')
|
|
611
|
+
# @example EnforcedStyle: not_to
|
|
612
|
+
# # bad
|
|
613
|
+
# expect(page).to have_no_selector
|
|
614
|
+
# expect(page).to have_no_css('a')
|
|
615
|
+
#
|
|
616
|
+
# # good
|
|
617
|
+
# expect(page).not_to have_selector
|
|
618
|
+
# expect(page).not_to have_css('a')
|
|
619
|
+
#
|
|
620
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#26
|
|
621
|
+
class RuboCop::Cop::Capybara::NegationMatcher < ::RuboCop::Cop::Base
|
|
622
|
+
include ::RuboCop::Cop::ConfigurableEnforcedStyle
|
|
623
|
+
extend ::RuboCop::Cop::AutoCorrector
|
|
624
|
+
|
|
625
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#50
|
|
626
|
+
def have_no?(param0 = T.unsafe(nil)); end
|
|
627
|
+
|
|
628
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#44
|
|
629
|
+
def not_to?(param0 = T.unsafe(nil)); end
|
|
630
|
+
|
|
631
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#55
|
|
632
|
+
def on_send(node); end
|
|
633
|
+
|
|
634
|
+
private
|
|
635
|
+
|
|
636
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#78
|
|
637
|
+
def message(matcher); end
|
|
638
|
+
|
|
639
|
+
# @return [Boolean]
|
|
640
|
+
#
|
|
641
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#69
|
|
642
|
+
def offense?(node); end
|
|
643
|
+
|
|
644
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#74
|
|
645
|
+
def offense_range(node); end
|
|
646
|
+
|
|
647
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#93
|
|
648
|
+
def replaced_matcher(matcher); end
|
|
649
|
+
|
|
650
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#84
|
|
651
|
+
def replaced_runner; end
|
|
652
|
+
end
|
|
653
|
+
|
|
654
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#31
|
|
655
|
+
RuboCop::Cop::Capybara::NegationMatcher::CAPYBARA_MATCHERS = T.let(T.unsafe(nil), Array)
|
|
656
|
+
|
|
657
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#30
|
|
658
|
+
RuboCop::Cop::Capybara::NegationMatcher::MSG = T.let(T.unsafe(nil), String)
|
|
659
|
+
|
|
660
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#38
|
|
661
|
+
RuboCop::Cop::Capybara::NegationMatcher::NEGATIVE_MATCHERS = T.let(T.unsafe(nil), Set)
|
|
662
|
+
|
|
663
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#36
|
|
664
|
+
RuboCop::Cop::Capybara::NegationMatcher::POSITIVE_MATCHERS = T.let(T.unsafe(nil), Set)
|
|
665
|
+
|
|
666
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#41
|
|
667
|
+
RuboCop::Cop::Capybara::NegationMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
|
|
668
|
+
|
|
669
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#6
|
|
670
|
+
module RuboCop::Cop::Capybara::RSpec; end
|
|
671
|
+
|
|
672
|
+
# A helper for `explicit` style
|
|
673
|
+
#
|
|
674
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#108
|
|
675
|
+
module RuboCop::Cop::Capybara::RSpec::ExplicitHelper
|
|
676
|
+
extend ::RuboCop::AST::NodePattern::Macros
|
|
677
|
+
|
|
678
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#138
|
|
679
|
+
def predicate_matcher?(param0 = T.unsafe(nil)); end
|
|
680
|
+
|
|
681
|
+
private
|
|
682
|
+
|
|
683
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#124
|
|
684
|
+
def allowed_explicit_matchers; end
|
|
685
|
+
|
|
686
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#128
|
|
687
|
+
def check_explicit(node); end
|
|
688
|
+
|
|
689
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#162
|
|
690
|
+
def corrector_explicit(corrector, to_node, actual, matcher); end
|
|
691
|
+
|
|
692
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#156
|
|
693
|
+
def message_explicit(matcher); end
|
|
694
|
+
|
|
695
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#169
|
|
696
|
+
def move_predicate(corrector, actual, matcher); end
|
|
697
|
+
|
|
698
|
+
# @return [Boolean]
|
|
699
|
+
#
|
|
700
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#149
|
|
701
|
+
def predicate_matcher_name?(name); end
|
|
702
|
+
|
|
703
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#180
|
|
704
|
+
def replacement_matcher(node); end
|
|
705
|
+
|
|
706
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#176
|
|
707
|
+
def to_predicate_method(matcher); end
|
|
708
|
+
end
|
|
709
|
+
|
|
710
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#113
|
|
711
|
+
RuboCop::Cop::Capybara::RSpec::ExplicitHelper::BUILT_IN_MATCHERS = T.let(T.unsafe(nil), Array)
|
|
712
|
+
|
|
713
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#118
|
|
714
|
+
RuboCop::Cop::Capybara::RSpec::ExplicitHelper::INFLECTED_MATCHER = T.let(T.unsafe(nil), Array)
|
|
715
|
+
|
|
716
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#111
|
|
717
|
+
RuboCop::Cop::Capybara::RSpec::ExplicitHelper::MSG_EXPLICIT = T.let(T.unsafe(nil), String)
|
|
718
|
+
|
|
719
|
+
# Use `have_css` or `have_xpath` instead of `have_selector`.
|
|
720
|
+
#
|
|
721
|
+
# @example
|
|
722
|
+
# # bad
|
|
723
|
+
# expect(foo).to have_selector(:css, 'bar')
|
|
724
|
+
#
|
|
725
|
+
# # good
|
|
726
|
+
# expect(foo).to have_css('bar')
|
|
727
|
+
#
|
|
728
|
+
# # bad
|
|
729
|
+
# expect(foo).to have_selector(:xpath, 'bar')
|
|
730
|
+
#
|
|
731
|
+
# # good
|
|
732
|
+
# expect(foo).to have_xpath('bar')
|
|
733
|
+
# @example DefaultSelector: css (default)
|
|
734
|
+
# # bad
|
|
735
|
+
# expect(foo).to have_selector('bar')
|
|
736
|
+
#
|
|
737
|
+
# # good
|
|
738
|
+
# expect(foo).to have_css('bar')
|
|
739
|
+
# @example DefaultSelector: xpath
|
|
740
|
+
# # bad
|
|
741
|
+
# expect(foo).to have_selector('bar')
|
|
742
|
+
#
|
|
743
|
+
# # good
|
|
744
|
+
# expect(foo).to have_xpath('bar')
|
|
745
|
+
#
|
|
746
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#36
|
|
747
|
+
class RuboCop::Cop::Capybara::RSpec::HaveSelector < ::RuboCop::Cop::Base
|
|
748
|
+
include ::RuboCop::Cop::RangeHelp
|
|
749
|
+
extend ::RuboCop::Cop::AutoCorrector
|
|
750
|
+
|
|
751
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#44
|
|
752
|
+
def on_send(node); end
|
|
753
|
+
|
|
754
|
+
private
|
|
755
|
+
|
|
756
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#80
|
|
757
|
+
def default_selector; end
|
|
758
|
+
|
|
759
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#65
|
|
760
|
+
def deletion_range(first_argument, second_argument); end
|
|
761
|
+
|
|
762
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#61
|
|
763
|
+
def message_typed(type); end
|
|
764
|
+
|
|
765
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#76
|
|
766
|
+
def message_untyped; end
|
|
767
|
+
|
|
768
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#52
|
|
769
|
+
def on_select_with_type(node, type); end
|
|
770
|
+
|
|
771
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#70
|
|
772
|
+
def on_select_without_type(node); end
|
|
773
|
+
end
|
|
774
|
+
|
|
775
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#40
|
|
776
|
+
RuboCop::Cop::Capybara::RSpec::HaveSelector::MSG = T.let(T.unsafe(nil), String)
|
|
777
|
+
|
|
778
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#41
|
|
779
|
+
RuboCop::Cop::Capybara::RSpec::HaveSelector::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
780
|
+
|
|
781
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/have_selector.rb#42
|
|
782
|
+
RuboCop::Cop::Capybara::RSpec::HaveSelector::SELECTORS = T.let(T.unsafe(nil), Array)
|
|
783
|
+
|
|
784
|
+
# A helper for `inflected` style
|
|
785
|
+
#
|
|
786
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#8
|
|
787
|
+
module RuboCop::Cop::Capybara::RSpec::InflectedHelper
|
|
788
|
+
extend ::RuboCop::AST::NodePattern::Macros
|
|
789
|
+
|
|
790
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#46
|
|
791
|
+
def be_bool?(param0 = T.unsafe(nil)); end
|
|
792
|
+
|
|
793
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#51
|
|
794
|
+
def be_boolthy?(param0 = T.unsafe(nil)); end
|
|
795
|
+
|
|
796
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#32
|
|
797
|
+
def predicate_in_actual?(param0 = T.unsafe(nil)); end
|
|
798
|
+
|
|
799
|
+
private
|
|
800
|
+
|
|
801
|
+
# @return [Boolean]
|
|
802
|
+
#
|
|
803
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#55
|
|
804
|
+
def boolean_matcher?(node); end
|
|
805
|
+
|
|
806
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#19
|
|
807
|
+
def check_inflected(node); end
|
|
808
|
+
|
|
809
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#67
|
|
810
|
+
def message_inflected(predicate); end
|
|
811
|
+
|
|
812
|
+
# @return [Boolean]
|
|
813
|
+
#
|
|
814
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#63
|
|
815
|
+
def predicate?(sym); end
|
|
816
|
+
|
|
817
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#77
|
|
818
|
+
def remove_predicate(corrector, predicate); end
|
|
819
|
+
|
|
820
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#85
|
|
821
|
+
def rewrite_matcher(corrector, predicate, matcher); end
|
|
822
|
+
|
|
823
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#73
|
|
824
|
+
def to_predicate_matcher(name); end
|
|
825
|
+
|
|
826
|
+
# @return [Boolean]
|
|
827
|
+
#
|
|
828
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#94
|
|
829
|
+
def true?(to_symbol, matcher); end
|
|
830
|
+
end
|
|
831
|
+
|
|
832
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#11
|
|
833
|
+
RuboCop::Cop::Capybara::RSpec::InflectedHelper::EXPLICIT_MATCHER = T.let(T.unsafe(nil), Array)
|
|
834
|
+
|
|
835
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#14
|
|
836
|
+
RuboCop::Cop::Capybara::RSpec::InflectedHelper::MSG_INFLECTED = T.let(T.unsafe(nil), String)
|
|
837
|
+
|
|
838
|
+
# Prefer using predicate matcher over using predicate method directly.
|
|
839
|
+
#
|
|
840
|
+
# Capybara defines magic matchers for predicate methods.
|
|
841
|
+
# This cop recommends to use the predicate matcher instead of using
|
|
842
|
+
# predicate method directly.
|
|
843
|
+
#
|
|
844
|
+
# @example Strict: true, EnforcedStyle: inflected (default)
|
|
845
|
+
# # bad
|
|
846
|
+
# expect(foo.matches_css?(bar: 'baz')).to be_truthy
|
|
847
|
+
# expect(foo.matches_selector?(bar: 'baz')).to be_truthy
|
|
848
|
+
# expect(foo.matches_style?(bar: 'baz')).to be_truthy
|
|
849
|
+
# expect(foo.matches_xpath?(bar: 'baz')).to be_truthy
|
|
850
|
+
#
|
|
851
|
+
# # good
|
|
852
|
+
# expect(foo).to match_css(bar: 'baz')
|
|
853
|
+
# expect(foo).to match_selector(bar: 'baz')
|
|
854
|
+
# expect(foo).to match_style(bar: 'baz')
|
|
855
|
+
# expect(foo).to match_xpath(bar: 'baz')
|
|
856
|
+
#
|
|
857
|
+
# # also good - It checks "true" strictly.
|
|
858
|
+
# expect(foo.matches_style?(bar: 'baz')).to be(true)
|
|
859
|
+
# @example Strict: false, EnforcedStyle: inflected
|
|
860
|
+
# # bad
|
|
861
|
+
# expect(foo.matches_style?(bar: 'baz')).to be_truthy
|
|
862
|
+
# expect(foo.matches_style?(bar: 'baz')).to be(true)
|
|
863
|
+
#
|
|
864
|
+
# # good
|
|
865
|
+
# expect(foo).to match_style(bar: 'baz')
|
|
866
|
+
# @example Strict: true, EnforcedStyle: explicit
|
|
867
|
+
# # bad
|
|
868
|
+
# expect(foo).to match_style(bar: 'baz')
|
|
869
|
+
#
|
|
870
|
+
# # good - the above code is rewritten to it by this cop
|
|
871
|
+
# expect(foo.matches_style?(bar: 'baz')).to be(true)
|
|
872
|
+
# @example Strict: false, EnforcedStyle: explicit
|
|
873
|
+
# # bad
|
|
874
|
+
# expect(foo).to match_style(bar: 'baz')
|
|
875
|
+
#
|
|
876
|
+
# # good - the above code is rewritten to it by this cop
|
|
877
|
+
# expect(foo.matches_style?(bar: 'baz')).to be_truthy
|
|
878
|
+
#
|
|
879
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#238
|
|
880
|
+
class RuboCop::Cop::Capybara::RSpec::PredicateMatcher < ::RuboCop::Cop::Base
|
|
881
|
+
include ::RuboCop::Cop::ConfigurableEnforcedStyle
|
|
882
|
+
include ::RuboCop::Cop::Capybara::RSpec::InflectedHelper
|
|
883
|
+
include ::RuboCop::Cop::Capybara::RSpec::ExplicitHelper
|
|
884
|
+
extend ::RuboCop::Cop::AutoCorrector
|
|
885
|
+
|
|
886
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#246
|
|
887
|
+
def on_send(node); end
|
|
888
|
+
|
|
889
|
+
private
|
|
890
|
+
|
|
891
|
+
# returns args location with whitespace
|
|
892
|
+
#
|
|
893
|
+
# @example
|
|
894
|
+
# foo 1, 2
|
|
895
|
+
# ^^^^^
|
|
896
|
+
#
|
|
897
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#260
|
|
898
|
+
def args_loc(send_node); end
|
|
899
|
+
end
|
|
900
|
+
|
|
901
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/rspec/predicate_matcher.rb#244
|
|
902
|
+
RuboCop::Cop::Capybara::RSpec::PredicateMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
903
|
+
|
|
904
|
+
# Checks for redundant `within find(...)` calls.
|
|
905
|
+
#
|
|
906
|
+
# @example
|
|
907
|
+
# # bad
|
|
908
|
+
# within find('foo.bar') do
|
|
909
|
+
# # ...
|
|
910
|
+
# end
|
|
911
|
+
#
|
|
912
|
+
# # good
|
|
913
|
+
# within 'foo.bar' do
|
|
914
|
+
# # ...
|
|
915
|
+
# end
|
|
916
|
+
#
|
|
917
|
+
# # bad
|
|
918
|
+
# within find_by_id('foo') do
|
|
919
|
+
# # ...
|
|
920
|
+
# end
|
|
921
|
+
#
|
|
922
|
+
# # good
|
|
923
|
+
# within '#foo' do
|
|
924
|
+
# # ...
|
|
925
|
+
# end
|
|
926
|
+
#
|
|
927
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/redundant_within_find.rb#29
|
|
928
|
+
class RuboCop::Cop::Capybara::RedundantWithinFind < ::RuboCop::Cop::Base
|
|
929
|
+
extend ::RuboCop::Cop::AutoCorrector
|
|
930
|
+
|
|
931
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/redundant_within_find.rb#41
|
|
932
|
+
def on_send(node); end
|
|
933
|
+
|
|
934
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/redundant_within_find.rb#36
|
|
935
|
+
def within_find(param0 = T.unsafe(nil)); end
|
|
936
|
+
|
|
937
|
+
private
|
|
938
|
+
|
|
939
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/redundant_within_find.rb#51
|
|
940
|
+
def msg(node); end
|
|
941
|
+
|
|
942
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/redundant_within_find.rb#55
|
|
943
|
+
def replaced(node); end
|
|
944
|
+
end
|
|
945
|
+
|
|
946
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/redundant_within_find.rb#33
|
|
947
|
+
RuboCop::Cop::Capybara::RedundantWithinFind::FIND_METHODS = T.let(T.unsafe(nil), Set)
|
|
948
|
+
|
|
949
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/redundant_within_find.rb#31
|
|
950
|
+
RuboCop::Cop::Capybara::RedundantWithinFind::MSG = T.let(T.unsafe(nil), String)
|
|
951
|
+
|
|
952
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/redundant_within_find.rb#32
|
|
953
|
+
RuboCop::Cop::Capybara::RedundantWithinFind::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
954
|
+
|
|
955
|
+
# Checks for there is a more specific actions offered by Capybara.
|
|
956
|
+
#
|
|
957
|
+
# @example
|
|
958
|
+
#
|
|
959
|
+
# # bad
|
|
960
|
+
# find('a').click
|
|
961
|
+
# find('button.cls').click
|
|
962
|
+
# find('a', exact_text: 'foo').click
|
|
963
|
+
# find('div button').click
|
|
964
|
+
#
|
|
965
|
+
# # good
|
|
966
|
+
# click_link
|
|
967
|
+
# click_button(class: 'cls')
|
|
968
|
+
# click_link(exact_text: 'foo')
|
|
969
|
+
# find('div').click_button
|
|
970
|
+
#
|
|
971
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#22
|
|
972
|
+
class RuboCop::Cop::Capybara::SpecificActions < ::RuboCop::Cop::Base
|
|
973
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#31
|
|
974
|
+
def click_on_selector(param0 = T.unsafe(nil)); end
|
|
975
|
+
|
|
976
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#35
|
|
977
|
+
def on_send(node); end
|
|
978
|
+
|
|
979
|
+
private
|
|
980
|
+
|
|
981
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#87
|
|
982
|
+
def good_action(action); end
|
|
983
|
+
|
|
984
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#73
|
|
985
|
+
def last_selector(arg); end
|
|
986
|
+
|
|
987
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#81
|
|
988
|
+
def message(action, selector); end
|
|
989
|
+
|
|
990
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#77
|
|
991
|
+
def offense_range(node, receiver); end
|
|
992
|
+
|
|
993
|
+
# @return [Boolean]
|
|
994
|
+
#
|
|
995
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#57
|
|
996
|
+
def replaceable?(node, arg, action); end
|
|
997
|
+
|
|
998
|
+
# @return [Boolean]
|
|
999
|
+
#
|
|
1000
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#63
|
|
1001
|
+
def replaceable_attributes?(selector); end
|
|
1002
|
+
|
|
1003
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#53
|
|
1004
|
+
def specific_action(selector); end
|
|
1005
|
+
|
|
1006
|
+
# @return [Boolean]
|
|
1007
|
+
#
|
|
1008
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#69
|
|
1009
|
+
def supported_selector?(selector); end
|
|
1010
|
+
end
|
|
1011
|
+
|
|
1012
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#23
|
|
1013
|
+
RuboCop::Cop::Capybara::SpecificActions::MSG = T.let(T.unsafe(nil), String)
|
|
1014
|
+
|
|
1015
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#24
|
|
1016
|
+
RuboCop::Cop::Capybara::SpecificActions::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
1017
|
+
|
|
1018
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#25
|
|
1019
|
+
RuboCop::Cop::Capybara::SpecificActions::SPECIFIC_ACTION = T.let(T.unsafe(nil), Hash)
|
|
1020
|
+
|
|
1021
|
+
# Checks if there is a more specific finder offered by Capybara.
|
|
1022
|
+
#
|
|
1023
|
+
# @example
|
|
1024
|
+
# # bad
|
|
1025
|
+
# find('#some-id')
|
|
1026
|
+
# find('[id=some-id]')
|
|
1027
|
+
# find(:css, '#some-id')
|
|
1028
|
+
#
|
|
1029
|
+
# # good
|
|
1030
|
+
# find_by_id('some-id')
|
|
1031
|
+
#
|
|
1032
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#17
|
|
1033
|
+
class RuboCop::Cop::Capybara::SpecificFinders < ::RuboCop::Cop::Base
|
|
1034
|
+
include ::RuboCop::Cop::RangeHelp
|
|
1035
|
+
extend ::RuboCop::Cop::AutoCorrector
|
|
1036
|
+
|
|
1037
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#30
|
|
1038
|
+
def class_options(param0); end
|
|
1039
|
+
|
|
1040
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#25
|
|
1041
|
+
def find_argument(param0 = T.unsafe(nil)); end
|
|
1042
|
+
|
|
1043
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#34
|
|
1044
|
+
def on_send(node); end
|
|
1045
|
+
|
|
1046
|
+
private
|
|
1047
|
+
|
|
1048
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#93
|
|
1049
|
+
def append_options(classes, options); end
|
|
1050
|
+
|
|
1051
|
+
# @return [Boolean]
|
|
1052
|
+
#
|
|
1053
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#62
|
|
1054
|
+
def attribute?(arg); end
|
|
1055
|
+
|
|
1056
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#83
|
|
1057
|
+
def autocorrect_classes(corrector, node, classes); end
|
|
1058
|
+
|
|
1059
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#78
|
|
1060
|
+
def deletion_range(node); end
|
|
1061
|
+
|
|
1062
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#120
|
|
1063
|
+
def end_pos(node); end
|
|
1064
|
+
|
|
1065
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#98
|
|
1066
|
+
def keyword_argument_class(classes); end
|
|
1067
|
+
|
|
1068
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#116
|
|
1069
|
+
def offense_range(node); end
|
|
1070
|
+
|
|
1071
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#46
|
|
1072
|
+
def on_attr(node, sym, arg); end
|
|
1073
|
+
|
|
1074
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#54
|
|
1075
|
+
def on_id(node, sym, arg); end
|
|
1076
|
+
|
|
1077
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#67
|
|
1078
|
+
def register_offense(node, sym, id, classes = T.unsafe(nil)); end
|
|
1079
|
+
|
|
1080
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#103
|
|
1081
|
+
def replaced_arguments(arg, id); end
|
|
1082
|
+
|
|
1083
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#108
|
|
1084
|
+
def to_options(attrs); end
|
|
1085
|
+
end
|
|
1086
|
+
|
|
1087
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#21
|
|
1088
|
+
RuboCop::Cop::Capybara::SpecificFinders::MSG = T.let(T.unsafe(nil), String)
|
|
1089
|
+
|
|
1090
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#22
|
|
1091
|
+
RuboCop::Cop::Capybara::SpecificFinders::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
1092
|
+
|
|
1093
|
+
# Checks for there is a more specific matcher offered by Capybara.
|
|
1094
|
+
#
|
|
1095
|
+
# @example
|
|
1096
|
+
#
|
|
1097
|
+
# # bad
|
|
1098
|
+
# expect(page).to have_selector('button')
|
|
1099
|
+
# expect(page).to have_no_selector('button.cls')
|
|
1100
|
+
# expect(page).to have_css('button')
|
|
1101
|
+
# expect(page).to have_no_css('a.cls', href: 'http://example.com')
|
|
1102
|
+
# expect(page).to have_css('table.cls')
|
|
1103
|
+
# expect(page).to have_css('select')
|
|
1104
|
+
# expect(page).to have_css('input', exact_text: 'foo')
|
|
1105
|
+
#
|
|
1106
|
+
# # good
|
|
1107
|
+
# expect(page).to have_button
|
|
1108
|
+
# expect(page).to have_no_button(class: 'cls')
|
|
1109
|
+
# expect(page).to have_button
|
|
1110
|
+
# expect(page).to have_no_link('foo', class: 'cls', href: 'http://example.com')
|
|
1111
|
+
# expect(page).to have_table(class: 'cls')
|
|
1112
|
+
# expect(page).to have_select
|
|
1113
|
+
# expect(page).to have_field('foo')
|
|
1114
|
+
#
|
|
1115
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#28
|
|
1116
|
+
class RuboCop::Cop::Capybara::SpecificMatcher < ::RuboCop::Cop::Base
|
|
1117
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#41
|
|
1118
|
+
def first_argument(param0 = T.unsafe(nil)); end
|
|
1119
|
+
|
|
1120
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#50
|
|
1121
|
+
def on_send(node); end
|
|
1122
|
+
|
|
1123
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#46
|
|
1124
|
+
def text_with_regexp?(param0); end
|
|
1125
|
+
|
|
1126
|
+
private
|
|
1127
|
+
|
|
1128
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#86
|
|
1129
|
+
def good_matcher(node, matcher); end
|
|
1130
|
+
|
|
1131
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#80
|
|
1132
|
+
def message(node, matcher); end
|
|
1133
|
+
|
|
1134
|
+
# @return [Boolean]
|
|
1135
|
+
#
|
|
1136
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#67
|
|
1137
|
+
def replaceable?(node, arg, matcher); end
|
|
1138
|
+
|
|
1139
|
+
# @return [Boolean]
|
|
1140
|
+
#
|
|
1141
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#74
|
|
1142
|
+
def replaceable_attributes?(selector); end
|
|
1143
|
+
|
|
1144
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#62
|
|
1145
|
+
def specific_matcher(arg); end
|
|
1146
|
+
end
|
|
1147
|
+
|
|
1148
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#29
|
|
1149
|
+
RuboCop::Cop::Capybara::SpecificMatcher::MSG = T.let(T.unsafe(nil), String)
|
|
1150
|
+
|
|
1151
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#30
|
|
1152
|
+
RuboCop::Cop::Capybara::SpecificMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|
|
1153
|
+
|
|
1154
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#32
|
|
1155
|
+
RuboCop::Cop::Capybara::SpecificMatcher::SPECIFIC_MATCHER = T.let(T.unsafe(nil), Hash)
|
|
1156
|
+
|
|
1157
|
+
# Checks for boolean visibility in Capybara finders.
|
|
1158
|
+
#
|
|
1159
|
+
# Capybara lets you find elements that match a certain visibility using
|
|
1160
|
+
# the `:visible` option. `:visible` accepts both boolean and symbols as
|
|
1161
|
+
# values, however using booleans can have unwanted effects. `visible:
|
|
1162
|
+
# false` does not find just invisible elements, but both visible and
|
|
1163
|
+
# invisible elements. For expressiveness and clarity, use one of the
|
|
1164
|
+
# symbol values, `:all`, `:hidden` or `:visible`.
|
|
1165
|
+
# Read more in
|
|
1166
|
+
# https://www.rubydoc.info/gems/capybara/Capybara%2FNode%2FFinders:all[the documentation].
|
|
1167
|
+
#
|
|
1168
|
+
# @example
|
|
1169
|
+
# # bad
|
|
1170
|
+
# expect(page).to have_selector('.foo', visible: false)
|
|
1171
|
+
# expect(page).to have_css('.foo', visible: true)
|
|
1172
|
+
# expect(page).to have_link('my link', visible: false)
|
|
1173
|
+
#
|
|
1174
|
+
# # good
|
|
1175
|
+
# expect(page).to have_selector('.foo', visible: :visible)
|
|
1176
|
+
# expect(page).to have_css('.foo', visible: :all)
|
|
1177
|
+
# expect(page).to have_link('my link', visible: :hidden)
|
|
1178
|
+
#
|
|
1179
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#28
|
|
1180
|
+
class RuboCop::Cop::Capybara::VisibilityMatcher < ::RuboCop::Cop::Base
|
|
1181
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#58
|
|
1182
|
+
def on_send(node); end
|
|
1183
|
+
|
|
1184
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#54
|
|
1185
|
+
def visible_false?(param0 = T.unsafe(nil)); end
|
|
1186
|
+
|
|
1187
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#49
|
|
1188
|
+
def visible_true?(param0 = T.unsafe(nil)); end
|
|
1189
|
+
|
|
1190
|
+
private
|
|
1191
|
+
|
|
1192
|
+
# @return [Boolean]
|
|
1193
|
+
#
|
|
1194
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#65
|
|
1195
|
+
def capybara_matcher?(method_name); end
|
|
1196
|
+
end
|
|
1197
|
+
|
|
1198
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#31
|
|
1199
|
+
RuboCop::Cop::Capybara::VisibilityMatcher::CAPYBARA_MATCHER_METHODS = T.let(T.unsafe(nil), Array)
|
|
1200
|
+
|
|
1201
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#29
|
|
1202
|
+
RuboCop::Cop::Capybara::VisibilityMatcher::MSG_FALSE = T.let(T.unsafe(nil), String)
|
|
1203
|
+
|
|
1204
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#30
|
|
1205
|
+
RuboCop::Cop::Capybara::VisibilityMatcher::MSG_TRUE = T.let(T.unsafe(nil), String)
|
|
1206
|
+
|
|
1207
|
+
# source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#46
|
|
1208
|
+
RuboCop::Cop::Capybara::VisibilityMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
|