tsumanne 0.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 (56) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +32 -0
  4. data/.ruby-version +1 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +31 -0
  7. data/Rakefile +45 -0
  8. data/lib/tsumanne/version.rb +7 -0
  9. data/lib/tsumanne.rb +128 -0
  10. data/sorbet/config +4 -0
  11. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  12. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  13. data/sorbet/rbi/gems/base64@0.1.1.rbi +172 -0
  14. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  15. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  16. data/sorbet/rbi/gems/ffi-compiler@1.0.1.rbi +206 -0
  17. data/sorbet/rbi/gems/ffi@1.15.5.rbi +1994 -0
  18. data/sorbet/rbi/gems/http-parser@1.2.3.rbi +422 -0
  19. data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
  20. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  21. data/sorbet/rbi/gems/mhtml@0.1.6.rbi +353 -0
  22. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  23. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  24. data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
  25. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  26. data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
  27. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  28. data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
  29. data/sorbet/rbi/gems/rbi@0.0.17.rbi +2967 -0
  30. data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
  31. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  32. data/sorbet/rbi/gems/rspec-core@3.12.2.rbi +10805 -0
  33. data/sorbet/rbi/gems/rspec-expectations@3.12.3.rbi +8100 -0
  34. data/sorbet/rbi/gems/rspec-mocks@3.12.6.rbi +5310 -0
  35. data/sorbet/rbi/gems/rspec-support@3.12.1.rbi +1609 -0
  36. data/sorbet/rbi/gems/rspec@3.12.0.rbi +82 -0
  37. data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +7144 -0
  38. data/sorbet/rbi/gems/rubocop-capybara@2.18.0.rbi +827 -0
  39. data/sorbet/rbi/gems/rubocop-factory_bot@2.23.1.rbi +812 -0
  40. data/sorbet/rbi/gems/rubocop-performance@1.19.0.rbi +3157 -0
  41. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +328 -0
  42. data/sorbet/rbi/gems/rubocop-rspec@2.23.2.rbi +7691 -0
  43. data/sorbet/rbi/gems/rubocop-sorbet@0.7.3.rbi +1226 -0
  44. data/sorbet/rbi/gems/rubocop@1.56.2.rbi +56541 -0
  45. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  46. data/sorbet/rbi/gems/spoom@1.2.3.rbi +3199 -0
  47. data/sorbet/rbi/gems/syntax_tree@6.1.1.rbi +22855 -0
  48. data/sorbet/rbi/gems/tapioca@0.11.8.rbi +3329 -0
  49. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  50. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  51. data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
  52. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +425 -0
  53. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  54. data/sorbet/tapioca/config.yml +13 -0
  55. data/sorbet/tapioca/require.rb +4 -0
  56. metadata +254 -0
@@ -0,0 +1,827 @@
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
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#3
8
+ module RuboCop; end
9
+
10
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#4
11
+ module RuboCop::Cop; end
12
+
13
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#5
14
+ module RuboCop::Cop::Capybara; end
15
+
16
+ # Help methods for capybara.
17
+ #
18
+ # @api private
19
+ #
20
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#8
21
+ module RuboCop::Cop::Capybara::CapybaraHelp
22
+ private
23
+
24
+ # @api private
25
+ # @example
26
+ # common_attributes?('a[focused]') # => true
27
+ # common_attributes?('button[focused][visible]') # => true
28
+ # common_attributes?('table[id=some-id]') # => true
29
+ # common_attributes?('h1[invalid]') # => false
30
+ # @param selector [String]
31
+ # @return [Boolean]
32
+ #
33
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#61
34
+ def common_attributes?(selector); end
35
+
36
+ # @api private
37
+ # @param node [RuboCop::AST::SendNode]
38
+ # @param option [Symbol]
39
+ # @return [Boolean]
40
+ #
41
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#125
42
+ def include_option?(node, option); end
43
+
44
+ # @api private
45
+ # @example
46
+ # replaceable_attributes?('table[id=some-id]') # => true
47
+ # replaceable_attributes?('a[focused]') # => false
48
+ # @param attrs [Array<String>]
49
+ # @return [Boolean]
50
+ #
51
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#70
52
+ def replaceable_attributes?(attrs); end
53
+
54
+ # @api private
55
+ # @param node [RuboCop::AST::SendNode]
56
+ # @param element [String]
57
+ # @param attrs [Array<String>]
58
+ # @return [Boolean]
59
+ #
60
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#108
61
+ def replaceable_element?(node, element, attrs); end
62
+
63
+ # @api private
64
+ # @param node [RuboCop::AST::SendNode]
65
+ # @param locator [String]
66
+ # @param element [String]
67
+ # @return [Boolean]
68
+ #
69
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#45
70
+ def replaceable_option?(node, locator, element); end
71
+
72
+ # @api private
73
+ # @param pseudo_class [String]
74
+ # @param locator [String]
75
+ # @return [Boolean]
76
+ #
77
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#85
78
+ def replaceable_pseudo_class?(pseudo_class, locator); end
79
+
80
+ # @api private
81
+ # @param locator [String]
82
+ # @return [Boolean]
83
+ #
84
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#96
85
+ def replaceable_pseudo_class_not?(locator); end
86
+
87
+ # @api private
88
+ # @param locator [String]
89
+ # @return [Boolean]
90
+ #
91
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#76
92
+ def replaceable_pseudo_classes?(locator); end
93
+
94
+ # @api private
95
+ # @param node [RuboCop::AST::SendNode]
96
+ # @param attrs [Array<String>]
97
+ # @return [Boolean]
98
+ #
99
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#118
100
+ def replaceable_to_link?(node, attrs); end
101
+
102
+ class << self
103
+ # @api private
104
+ # @example
105
+ # common_attributes?('a[focused]') # => true
106
+ # common_attributes?('button[focused][visible]') # => true
107
+ # common_attributes?('table[id=some-id]') # => true
108
+ # common_attributes?('h1[invalid]') # => false
109
+ # @param selector [String]
110
+ # @return [Boolean]
111
+ #
112
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#61
113
+ def common_attributes?(selector); end
114
+
115
+ # @api private
116
+ # @param node [RuboCop::AST::SendNode]
117
+ # @param option [Symbol]
118
+ # @return [Boolean]
119
+ #
120
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#125
121
+ def include_option?(node, option); end
122
+
123
+ # @api private
124
+ # @example
125
+ # replaceable_attributes?('table[id=some-id]') # => true
126
+ # replaceable_attributes?('a[focused]') # => false
127
+ # @param attrs [Array<String>]
128
+ # @return [Boolean]
129
+ #
130
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#70
131
+ def replaceable_attributes?(attrs); end
132
+
133
+ # @api private
134
+ # @param node [RuboCop::AST::SendNode]
135
+ # @param element [String]
136
+ # @param attrs [Array<String>]
137
+ # @return [Boolean]
138
+ #
139
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#108
140
+ def replaceable_element?(node, element, attrs); end
141
+
142
+ # @api private
143
+ # @param node [RuboCop::AST::SendNode]
144
+ # @param locator [String]
145
+ # @param element [String]
146
+ # @return [Boolean]
147
+ #
148
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#45
149
+ def replaceable_option?(node, locator, element); end
150
+
151
+ # @api private
152
+ # @param pseudo_class [String]
153
+ # @param locator [String]
154
+ # @return [Boolean]
155
+ #
156
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#85
157
+ def replaceable_pseudo_class?(pseudo_class, locator); end
158
+
159
+ # @api private
160
+ # @param locator [String]
161
+ # @return [Boolean]
162
+ #
163
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#96
164
+ def replaceable_pseudo_class_not?(locator); end
165
+
166
+ # @api private
167
+ # @param locator [String]
168
+ # @return [Boolean]
169
+ #
170
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#76
171
+ def replaceable_pseudo_classes?(locator); end
172
+
173
+ # @api private
174
+ # @param node [RuboCop::AST::SendNode]
175
+ # @param attrs [Array<String>]
176
+ # @return [Boolean]
177
+ #
178
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#118
179
+ def replaceable_to_link?(node, attrs); end
180
+ end
181
+ end
182
+
183
+ # @api private
184
+ #
185
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#9
186
+ RuboCop::Cop::Capybara::CapybaraHelp::COMMON_OPTIONS = T.let(T.unsafe(nil), Array)
187
+
188
+ # @api private
189
+ #
190
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#12
191
+ RuboCop::Cop::Capybara::CapybaraHelp::SPECIFIC_OPTIONS = T.let(T.unsafe(nil), Hash)
192
+
193
+ # @api private
194
+ #
195
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/capybara_help.rb#35
196
+ RuboCop::Cop::Capybara::CapybaraHelp::SPECIFIC_PSEUDO_CLASSES = T.let(T.unsafe(nil), Array)
197
+
198
+ # Helps parsing css selector.
199
+ #
200
+ # @api private
201
+ #
202
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#8
203
+ module RuboCop::Cop::Capybara::CssSelector
204
+ private
205
+
206
+ # @api private
207
+ # @example
208
+ # attribute?('[attribute]') # => true
209
+ # attribute?('attribute') # => false
210
+ # @param selector [String]
211
+ # @return [Boolean]
212
+ #
213
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#48
214
+ def attribute?(selector); end
215
+
216
+ # @api private
217
+ # @example
218
+ # attributes('a[foo-bar_baz]') # => {"foo-bar_baz=>nil}
219
+ # attributes('button[foo][bar=baz]') # => {"foo"=>nil, "bar"=>"'baz'"}
220
+ # attributes('table[foo=bar]') # => {"foo"=>"'bar'"}
221
+ # @param selector [String]
222
+ # @return [Array<String>]
223
+ #
224
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#58
225
+ def attributes(selector); end
226
+
227
+ # @api private
228
+ # @example
229
+ # classes('#some-id') # => []
230
+ # classes('.some-cls') # => ['some-cls']
231
+ # classes('#some-id.some-cls') # => ['some-cls']
232
+ # classes('#some-id.cls1.cls2') # => ['cls1', 'cls2']
233
+ # @param selector [String]
234
+ # @return [Array<String>]
235
+ #
236
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#39
237
+ def classes(selector); end
238
+
239
+ # @api private
240
+ # @example
241
+ # id('#some-id') # => some-id
242
+ # id('.some-cls') # => nil
243
+ # id('#some-id.cls') # => some-id
244
+ # @param selector [String]
245
+ # @return [String]
246
+ #
247
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#17
248
+ def id(selector); end
249
+
250
+ # @api private
251
+ # @example
252
+ # id?('#some-id') # => true
253
+ # id?('.some-cls') # => false
254
+ # @param selector [String]
255
+ # @return [Boolean]
256
+ #
257
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#28
258
+ def id?(selector); end
259
+
260
+ # @api private
261
+ # @example
262
+ # multiple_selectors?('a.cls b#id') # => true
263
+ # multiple_selectors?('a.cls') # => false
264
+ # @param selector [String]
265
+ # @return [Boolean]
266
+ #
267
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#88
268
+ def multiple_selectors?(selector); end
269
+
270
+ # @api private
271
+ # @example
272
+ # normalize_value('true') # => true
273
+ # normalize_value('false') # => false
274
+ # normalize_value(nil) # => nil
275
+ # normalize_value("foo") # => "'foo'"
276
+ # @param value [String]
277
+ # @return [Boolean, String]
278
+ #
279
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#100
280
+ def normalize_value(value); end
281
+
282
+ # @api private
283
+ # @example
284
+ # pseudo_classes('button:not([disabled])') # => ['not()']
285
+ # pseudo_classes('a:enabled:not([valid])') # => ['enabled', 'not()']
286
+ # @param selector [String]
287
+ # @return [Array<String>]
288
+ #
289
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#74
290
+ def pseudo_classes(selector); end
291
+
292
+ class << self
293
+ # @api private
294
+ # @example
295
+ # attribute?('[attribute]') # => true
296
+ # attribute?('attribute') # => false
297
+ # @param selector [String]
298
+ # @return [Boolean]
299
+ #
300
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#48
301
+ def attribute?(selector); end
302
+
303
+ # @api private
304
+ # @example
305
+ # attributes('a[foo-bar_baz]') # => {"foo-bar_baz=>nil}
306
+ # attributes('button[foo][bar=baz]') # => {"foo"=>nil, "bar"=>"'baz'"}
307
+ # attributes('table[foo=bar]') # => {"foo"=>"'bar'"}
308
+ # @param selector [String]
309
+ # @return [Array<String>]
310
+ #
311
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#58
312
+ def attributes(selector); end
313
+
314
+ # @api private
315
+ # @example
316
+ # classes('#some-id') # => []
317
+ # classes('.some-cls') # => ['some-cls']
318
+ # classes('#some-id.some-cls') # => ['some-cls']
319
+ # classes('#some-id.cls1.cls2') # => ['cls1', 'cls2']
320
+ # @param selector [String]
321
+ # @return [Array<String>]
322
+ #
323
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#39
324
+ def classes(selector); end
325
+
326
+ # @api private
327
+ # @example
328
+ # id('#some-id') # => some-id
329
+ # id('.some-cls') # => nil
330
+ # id('#some-id.cls') # => some-id
331
+ # @param selector [String]
332
+ # @return [String]
333
+ #
334
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#17
335
+ def id(selector); end
336
+
337
+ # @api private
338
+ # @example
339
+ # id?('#some-id') # => true
340
+ # id?('.some-cls') # => false
341
+ # @param selector [String]
342
+ # @return [Boolean]
343
+ #
344
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#28
345
+ def id?(selector); end
346
+
347
+ # @api private
348
+ # @example
349
+ # multiple_selectors?('a.cls b#id') # => true
350
+ # multiple_selectors?('a.cls') # => false
351
+ # @param selector [String]
352
+ # @return [Boolean]
353
+ #
354
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#88
355
+ def multiple_selectors?(selector); end
356
+
357
+ # @api private
358
+ # @example
359
+ # normalize_value('true') # => true
360
+ # normalize_value('false') # => false
361
+ # normalize_value(nil) # => nil
362
+ # normalize_value("foo") # => "'foo'"
363
+ # @param value [String]
364
+ # @return [Boolean, String]
365
+ #
366
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#100
367
+ def normalize_value(value); end
368
+
369
+ # @api private
370
+ # @example
371
+ # pseudo_classes('button:not([disabled])') # => ['not()']
372
+ # pseudo_classes('a:enabled:not([valid])') # => ['enabled', 'not()']
373
+ # @param selector [String]
374
+ # @return [Array<String>]
375
+ #
376
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/mixin/css_selector.rb#74
377
+ def pseudo_classes(selector); end
378
+ end
379
+ end
380
+
381
+ # Checks that no expectations are set on Capybara's `current_path`.
382
+ #
383
+ # The
384
+ # https://www.rubydoc.info/github/teamcapybara/capybara/master/Capybara/RSpecMatchers#have_current_path-instance_method[`have_current_path` matcher]
385
+ # should be used on `page` to set expectations on Capybara's
386
+ # current path, since it uses
387
+ # https://github.com/teamcapybara/capybara/blob/master/README.md#asynchronous-javascript-ajax-and-friends[Capybara's waiting functionality]
388
+ # which ensures that preceding actions (like `click_link`) have
389
+ # completed.
390
+ #
391
+ # This cop does not support autocorrection in some cases.
392
+ #
393
+ # @example
394
+ # # bad
395
+ # expect(current_path).to eq('/callback')
396
+ #
397
+ # # good
398
+ # expect(page).to have_current_path('/callback')
399
+ #
400
+ # # bad (does not support autocorrection)
401
+ # expect(page.current_path).to match(variable)
402
+ #
403
+ # # good
404
+ # expect(page).to have_current_path('/callback')
405
+ #
406
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#31
407
+ class RuboCop::Cop::Capybara::CurrentPathExpectation < ::RuboCop::Cop::Base
408
+ include ::RuboCop::Cop::RangeHelp
409
+ extend ::RuboCop::Cop::AutoCorrector
410
+
411
+ # Supported matchers: eq(...) / match(/regexp/) / match('regexp')
412
+ #
413
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#48
414
+ def as_is_matcher(param0 = T.unsafe(nil)); end
415
+
416
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#42
417
+ def expectation_set_on_current_path(param0 = T.unsafe(nil)); end
418
+
419
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#65
420
+ def on_send(node); end
421
+
422
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#55
423
+ def regexp_node_matcher(param0 = T.unsafe(nil)); end
424
+
425
+ private
426
+
427
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#115
428
+ def add_argument_parentheses(corrector, arg_node); end
429
+
430
+ # `have_current_path` with no options will include the querystring
431
+ # while `page.current_path` does not.
432
+ # This ensures the option `ignore_query: true` is added
433
+ # except when the expectation is a regexp or string
434
+ #
435
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#133
436
+ def add_ignore_query_options(corrector, node); end
437
+
438
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#77
439
+ def autocorrect(corrector, node); end
440
+
441
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#101
442
+ def convert_regexp_node_to_literal(corrector, matcher_node, regexp_node); end
443
+
444
+ # @return [Boolean]
445
+ #
446
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#125
447
+ def method_call_with_no_parentheses?(arg_node); end
448
+
449
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#107
450
+ def regexp_node_to_regexp_expr(regexp_node); end
451
+
452
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#88
453
+ def rewrite_expectation(corrector, node, to_symbol, matcher_node); end
454
+
455
+ class << self
456
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#61
457
+ def autocorrect_incompatible_with; end
458
+ end
459
+ end
460
+
461
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#35
462
+ RuboCop::Cop::Capybara::CurrentPathExpectation::MSG = T.let(T.unsafe(nil), String)
463
+
464
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/current_path_expectation.rb#39
465
+ RuboCop::Cop::Capybara::CurrentPathExpectation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
466
+
467
+ # Checks for usage of deprecated style methods.
468
+ #
469
+ # @example when using `assert_style`
470
+ # # bad
471
+ # page.find(:css, '#first').assert_style(display: 'block')
472
+ #
473
+ # # good
474
+ # page.find(:css, '#first').assert_matches_style(display: 'block')
475
+ # @example when using `has_style?`
476
+ # # bad
477
+ # expect(page.find(:css, 'first')
478
+ # .has_style?(display: 'block')).to be true
479
+ #
480
+ # # good
481
+ # expect(page.find(:css, 'first')
482
+ # .matches_style?(display: 'block')).to be true
483
+ # @example when using `have_style`
484
+ # # bad
485
+ # expect(page).to have_style(display: 'block')
486
+ #
487
+ # # good
488
+ # expect(page).to match_style(display: 'block')
489
+ #
490
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#31
491
+ class RuboCop::Cop::Capybara::MatchStyle < ::RuboCop::Cop::Base
492
+ extend ::RuboCop::Cop::AutoCorrector
493
+
494
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#42
495
+ def on_send(node); end
496
+
497
+ private
498
+
499
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#52
500
+ def message(node); end
501
+ end
502
+
503
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#34
504
+ RuboCop::Cop::Capybara::MatchStyle::MSG = T.let(T.unsafe(nil), String)
505
+
506
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#36
507
+ RuboCop::Cop::Capybara::MatchStyle::PREFERRED_METHOD = T.let(T.unsafe(nil), Hash)
508
+
509
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/match_style.rb#35
510
+ RuboCop::Cop::Capybara::MatchStyle::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
511
+
512
+ # Enforces use of `have_no_*` or `not_to` for negated expectations.
513
+ #
514
+ # @example EnforcedStyle: not_to (default)
515
+ # # bad
516
+ # expect(page).to have_no_selector
517
+ # expect(page).to have_no_css('a')
518
+ #
519
+ # # good
520
+ # expect(page).not_to have_selector
521
+ # expect(page).not_to have_css('a')
522
+ # @example EnforcedStyle: have_no
523
+ # # bad
524
+ # expect(page).not_to have_selector
525
+ # expect(page).not_to have_css('a')
526
+ #
527
+ # # good
528
+ # expect(page).to have_no_selector
529
+ # expect(page).to have_no_css('a')
530
+ #
531
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#26
532
+ class RuboCop::Cop::Capybara::NegationMatcher < ::RuboCop::Cop::Base
533
+ include ::RuboCop::Cop::ConfigurableEnforcedStyle
534
+ extend ::RuboCop::Cop::AutoCorrector
535
+
536
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#50
537
+ def have_no?(param0 = T.unsafe(nil)); end
538
+
539
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#44
540
+ def not_to?(param0 = T.unsafe(nil)); end
541
+
542
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#55
543
+ def on_send(node); end
544
+
545
+ private
546
+
547
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#78
548
+ def message(matcher); end
549
+
550
+ # @return [Boolean]
551
+ #
552
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#69
553
+ def offense?(node); end
554
+
555
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#74
556
+ def offense_range(node); end
557
+
558
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#93
559
+ def replaced_matcher(matcher); end
560
+
561
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#84
562
+ def replaced_runner; end
563
+ end
564
+
565
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#31
566
+ RuboCop::Cop::Capybara::NegationMatcher::CAPYBARA_MATCHERS = T.let(T.unsafe(nil), Array)
567
+
568
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#30
569
+ RuboCop::Cop::Capybara::NegationMatcher::MSG = T.let(T.unsafe(nil), String)
570
+
571
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#38
572
+ RuboCop::Cop::Capybara::NegationMatcher::NEGATIVE_MATCHERS = T.let(T.unsafe(nil), Set)
573
+
574
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#36
575
+ RuboCop::Cop::Capybara::NegationMatcher::POSITIVE_MATCHERS = T.let(T.unsafe(nil), Set)
576
+
577
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/negation_matcher.rb#41
578
+ RuboCop::Cop::Capybara::NegationMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
579
+
580
+ # Checks for there is a more specific actions offered by Capybara.
581
+ #
582
+ # @example
583
+ #
584
+ # # bad
585
+ # find('a').click
586
+ # find('button.cls').click
587
+ # find('a', exact_text: 'foo').click
588
+ # find('div button').click
589
+ #
590
+ # # good
591
+ # click_link
592
+ # click_button(class: 'cls')
593
+ # click_link(exact_text: 'foo')
594
+ # find('div').click_button
595
+ #
596
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#22
597
+ class RuboCop::Cop::Capybara::SpecificActions < ::RuboCop::Cop::Base
598
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#31
599
+ def click_on_selector(param0 = T.unsafe(nil)); end
600
+
601
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#35
602
+ def on_send(node); end
603
+
604
+ private
605
+
606
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#87
607
+ def good_action(action); end
608
+
609
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#73
610
+ def last_selector(arg); end
611
+
612
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#81
613
+ def message(action, selector); end
614
+
615
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#77
616
+ def offense_range(node, receiver); end
617
+
618
+ # @return [Boolean]
619
+ #
620
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#57
621
+ def replaceable?(node, arg, action); end
622
+
623
+ # @return [Boolean]
624
+ #
625
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#63
626
+ def replaceable_attributes?(selector); end
627
+
628
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#53
629
+ def specific_action(selector); end
630
+
631
+ # @return [Boolean]
632
+ #
633
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#69
634
+ def supported_selector?(selector); end
635
+ end
636
+
637
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#23
638
+ RuboCop::Cop::Capybara::SpecificActions::MSG = T.let(T.unsafe(nil), String)
639
+
640
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#24
641
+ RuboCop::Cop::Capybara::SpecificActions::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
642
+
643
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_actions.rb#25
644
+ RuboCop::Cop::Capybara::SpecificActions::SPECIFIC_ACTION = T.let(T.unsafe(nil), Hash)
645
+
646
+ # Checks if there is a more specific finder offered by Capybara.
647
+ #
648
+ # @example
649
+ # # bad
650
+ # find('#some-id')
651
+ # find('[visible][id=some-id]')
652
+ #
653
+ # # good
654
+ # find_by_id('some-id')
655
+ # find_by_id('some-id', visible: true)
656
+ #
657
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#17
658
+ class RuboCop::Cop::Capybara::SpecificFinders < ::RuboCop::Cop::Base
659
+ include ::RuboCop::Cop::RangeHelp
660
+ extend ::RuboCop::Cop::AutoCorrector
661
+
662
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#31
663
+ def class_options(param0); end
664
+
665
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#26
666
+ def find_argument(param0 = T.unsafe(nil)); end
667
+
668
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#35
669
+ def on_send(node); end
670
+
671
+ private
672
+
673
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#89
674
+ def append_options(classes, options); end
675
+
676
+ # @return [Boolean]
677
+ #
678
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#63
679
+ def attribute?(arg); end
680
+
681
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#79
682
+ def autocorrect_classes(corrector, node, classes); end
683
+
684
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#116
685
+ def end_pos(node); end
686
+
687
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#94
688
+ def keyword_argument_class(classes); end
689
+
690
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#112
691
+ def offense_range(node); end
692
+
693
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#47
694
+ def on_attr(node, arg); end
695
+
696
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#55
697
+ def on_id(node, arg); end
698
+
699
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#68
700
+ def register_offense(node, id, classes = T.unsafe(nil)); end
701
+
702
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#99
703
+ def replaced_arguments(arg, id); end
704
+
705
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#104
706
+ def to_options(attrs); end
707
+ end
708
+
709
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#22
710
+ RuboCop::Cop::Capybara::SpecificFinders::MSG = T.let(T.unsafe(nil), String)
711
+
712
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_finders.rb#23
713
+ RuboCop::Cop::Capybara::SpecificFinders::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
714
+
715
+ # Checks for there is a more specific matcher offered by Capybara.
716
+ #
717
+ # @example
718
+ #
719
+ # # bad
720
+ # expect(page).to have_selector('button')
721
+ # expect(page).to have_no_selector('button.cls')
722
+ # expect(page).to have_css('button')
723
+ # expect(page).to have_no_css('a.cls', href: 'http://example.com')
724
+ # expect(page).to have_css('table.cls')
725
+ # expect(page).to have_css('select')
726
+ # expect(page).to have_css('input', exact_text: 'foo')
727
+ #
728
+ # # good
729
+ # expect(page).to have_button
730
+ # expect(page).to have_no_button(class: 'cls')
731
+ # expect(page).to have_button
732
+ # expect(page).to have_no_link('foo', class: 'cls', href: 'http://example.com')
733
+ # expect(page).to have_table(class: 'cls')
734
+ # expect(page).to have_select
735
+ # expect(page).to have_field('foo')
736
+ #
737
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#28
738
+ class RuboCop::Cop::Capybara::SpecificMatcher < ::RuboCop::Cop::Base
739
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#41
740
+ def first_argument(param0 = T.unsafe(nil)); end
741
+
742
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#45
743
+ def on_send(node); end
744
+
745
+ private
746
+
747
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#80
748
+ def good_matcher(node, matcher); end
749
+
750
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#74
751
+ def message(node, matcher); end
752
+
753
+ # @return [Boolean]
754
+ #
755
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#62
756
+ def replaceable?(node, arg, matcher); end
757
+
758
+ # @return [Boolean]
759
+ #
760
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#68
761
+ def replaceable_attributes?(selector); end
762
+
763
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#57
764
+ def specific_matcher(arg); end
765
+ end
766
+
767
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#29
768
+ RuboCop::Cop::Capybara::SpecificMatcher::MSG = T.let(T.unsafe(nil), String)
769
+
770
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#30
771
+ RuboCop::Cop::Capybara::SpecificMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
772
+
773
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/specific_matcher.rb#32
774
+ RuboCop::Cop::Capybara::SpecificMatcher::SPECIFIC_MATCHER = T.let(T.unsafe(nil), Hash)
775
+
776
+ # Checks for boolean visibility in Capybara finders.
777
+ #
778
+ # Capybara lets you find elements that match a certain visibility using
779
+ # the `:visible` option. `:visible` accepts both boolean and symbols as
780
+ # values, however using booleans can have unwanted effects. `visible:
781
+ # false` does not find just invisible elements, but both visible and
782
+ # invisible elements. For expressiveness and clarity, use one of the
783
+ # symbol values, `:all`, `:hidden` or `:visible`.
784
+ # Read more in
785
+ # https://www.rubydoc.info/gems/capybara/Capybara%2FNode%2FFinders:all[the documentation].
786
+ #
787
+ # @example
788
+ # # bad
789
+ # expect(page).to have_selector('.foo', visible: false)
790
+ # expect(page).to have_css('.foo', visible: true)
791
+ # expect(page).to have_link('my link', visible: false)
792
+ #
793
+ # # good
794
+ # expect(page).to have_selector('.foo', visible: :visible)
795
+ # expect(page).to have_css('.foo', visible: :all)
796
+ # expect(page).to have_link('my link', visible: :hidden)
797
+ #
798
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#28
799
+ class RuboCop::Cop::Capybara::VisibilityMatcher < ::RuboCop::Cop::Base
800
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#58
801
+ def on_send(node); end
802
+
803
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#54
804
+ def visible_false?(param0 = T.unsafe(nil)); end
805
+
806
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#49
807
+ def visible_true?(param0 = T.unsafe(nil)); end
808
+
809
+ private
810
+
811
+ # @return [Boolean]
812
+ #
813
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#65
814
+ def capybara_matcher?(method_name); end
815
+ end
816
+
817
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#31
818
+ RuboCop::Cop::Capybara::VisibilityMatcher::CAPYBARA_MATCHER_METHODS = T.let(T.unsafe(nil), Array)
819
+
820
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#29
821
+ RuboCop::Cop::Capybara::VisibilityMatcher::MSG_FALSE = T.let(T.unsafe(nil), String)
822
+
823
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#30
824
+ RuboCop::Cop::Capybara::VisibilityMatcher::MSG_TRUE = T.let(T.unsafe(nil), String)
825
+
826
+ # source://rubocop-capybara//lib/rubocop/cop/capybara/visibility_matcher.rb#46
827
+ RuboCop::Cop::Capybara::VisibilityMatcher::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)