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.
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)