playoffs 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +2 -0
  3. data/.editorconfig +8 -0
  4. data/.github/workflows/ci.yaml +29 -0
  5. data/.gitignore +8 -0
  6. data/.rubocop.yml +34 -0
  7. data/.tool-versions +1 -0
  8. data/.vscode/settings.json +5 -0
  9. data/CHANGELOG.md +3 -0
  10. data/CODE_OF_CONDUCT.md +73 -0
  11. data/Gemfile +5 -0
  12. data/Guardfile +17 -0
  13. data/LICENSE +5 -0
  14. data/README.md +245 -0
  15. data/Rakefile +11 -0
  16. data/bin/_guard-core +27 -0
  17. data/bin/bundle +109 -0
  18. data/bin/bundle-audit +27 -0
  19. data/bin/bundler-audit +27 -0
  20. data/bin/coderay +27 -0
  21. data/bin/console +11 -0
  22. data/bin/guard +27 -0
  23. data/bin/htmldiff +27 -0
  24. data/bin/ldiff +27 -0
  25. data/bin/listen +27 -0
  26. data/bin/playoffs +27 -0
  27. data/bin/pry +27 -0
  28. data/bin/racc +27 -0
  29. data/bin/rake +27 -0
  30. data/bin/rspec +27 -0
  31. data/bin/rubocop +27 -0
  32. data/bin/ruby-parse +27 -0
  33. data/bin/ruby-rewrite +27 -0
  34. data/bin/spoom +27 -0
  35. data/bin/srb +27 -0
  36. data/bin/srb-rbi +27 -0
  37. data/bin/tapioca +27 -0
  38. data/bin/thor +27 -0
  39. data/bin/yard +27 -0
  40. data/bin/yardoc +27 -0
  41. data/bin/yri +27 -0
  42. data/exe/playoffs +7 -0
  43. data/lib/playoffs/basketball.rb +120 -0
  44. data/lib/playoffs/best_of.rb +38 -0
  45. data/lib/playoffs/cli.rb +201 -0
  46. data/lib/playoffs/contestant.rb +8 -0
  47. data/lib/playoffs/round.rb +42 -0
  48. data/lib/playoffs/series.rb +167 -0
  49. data/lib/playoffs/team.rb +7 -0
  50. data/lib/playoffs/tournament/bracketable.rb +93 -0
  51. data/lib/playoffs/tournament/roundable.rb +53 -0
  52. data/lib/playoffs/tournament.rb +61 -0
  53. data/lib/playoffs/version.rb +6 -0
  54. data/lib/playoffs.rb +26 -0
  55. data/playoffs.gemspec +49 -0
  56. data/sorbet/config +4 -0
  57. data/sorbet/rbi/annotations/.gitattributes +1 -0
  58. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  59. data/sorbet/rbi/gems/.gitattributes +1 -0
  60. data/sorbet/rbi/gems/ansi@1.5.0.rbi +688 -0
  61. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  62. data/sorbet/rbi/gems/bundler-audit@0.9.1.rbi +309 -0
  63. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3426 -0
  64. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
  65. data/sorbet/rbi/gems/docile@1.4.0.rbi +377 -0
  66. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  67. data/sorbet/rbi/gems/ffi@1.16.3.rbi +9 -0
  68. data/sorbet/rbi/gems/formatador@1.1.0.rbi +9 -0
  69. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +67 -0
  70. data/sorbet/rbi/gems/guard-rspec@4.7.3.rbi +563 -0
  71. data/sorbet/rbi/gems/guard@2.18.1.rbi +9 -0
  72. data/sorbet/rbi/gems/json@2.7.2.rbi +1562 -0
  73. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  74. data/sorbet/rbi/gems/listen@3.9.0.rbi +9 -0
  75. data/sorbet/rbi/gems/lumberjack@1.2.10.rbi +9 -0
  76. data/sorbet/rbi/gems/method_source@1.1.0.rbi +304 -0
  77. data/sorbet/rbi/gems/nenv@0.3.0.rbi +9 -0
  78. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  79. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +9 -0
  80. data/sorbet/rbi/gems/parallel@1.24.0.rbi +280 -0
  81. data/sorbet/rbi/gems/parser@3.3.1.0.rbi +7238 -0
  82. data/sorbet/rbi/gems/primitive@1.0.0.rbi +58 -0
  83. data/sorbet/rbi/gems/prism@0.29.0.rbi +37987 -0
  84. data/sorbet/rbi/gems/pry@0.14.2.rbi +10069 -0
  85. data/sorbet/rbi/gems/racc@1.7.3.rbi +162 -0
  86. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  87. data/sorbet/rbi/gems/rake@13.2.1.rbi +3028 -0
  88. data/sorbet/rbi/gems/rb-fsevent@0.11.2.rbi +9 -0
  89. data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +9 -0
  90. data/sorbet/rbi/gems/rbi@0.1.13.rbi +3078 -0
  91. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +3772 -0
  92. data/sorbet/rbi/gems/rexml@3.2.8.rbi +4794 -0
  93. data/sorbet/rbi/gems/rspec-core@3.13.0.rbi +10874 -0
  94. data/sorbet/rbi/gems/rspec-expectations@3.13.0.rbi +8154 -0
  95. data/sorbet/rbi/gems/rspec-mocks@3.13.1.rbi +5341 -0
  96. data/sorbet/rbi/gems/rspec-support@3.13.1.rbi +1630 -0
  97. data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
  98. data/sorbet/rbi/gems/rubocop-ast@1.31.3.rbi +7159 -0
  99. data/sorbet/rbi/gems/rubocop-capybara@2.20.0.rbi +1208 -0
  100. data/sorbet/rbi/gems/rubocop-factory_bot@2.25.1.rbi +928 -0
  101. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
  102. data/sorbet/rbi/gems/rubocop-rspec@2.29.2.rbi +8247 -0
  103. data/sorbet/rbi/gems/rubocop-rspec_rails@2.28.3.rbi +911 -0
  104. data/sorbet/rbi/gems/rubocop-sorbet@0.8.3.rbi +1607 -0
  105. data/sorbet/rbi/gems/rubocop@1.63.5.rbi +57788 -0
  106. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  107. data/sorbet/rbi/gems/shellany@0.0.1.rbi +9 -0
  108. data/sorbet/rbi/gems/simplecov-console@0.9.1.rbi +103 -0
  109. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +217 -0
  110. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  111. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  112. data/sorbet/rbi/gems/sorbet-runtime-stub@0.2.0.rbi +8 -0
  113. data/sorbet/rbi/gems/spoom@1.3.2.rbi +4420 -0
  114. data/sorbet/rbi/gems/strscan@3.1.0.rbi +9 -0
  115. data/sorbet/rbi/gems/tapioca@0.14.2.rbi +3539 -0
  116. data/sorbet/rbi/gems/terminal-table@3.0.2.rbi +9 -0
  117. data/sorbet/rbi/gems/thor@1.3.1.rbi +4318 -0
  118. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  119. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  120. data/sorbet/rbi/gems/yard@0.9.36.rbi +18085 -0
  121. data/sorbet/tapioca/config.yml +13 -0
  122. data/sorbet/tapioca/require.rb +4 -0
  123. 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)