rails-rfc6570 3.1.0 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +2 -1
- data/lib/rails/rfc6570/version.rb +1 -1
- data/rails-rfc6570.gemspec +2 -2
- data/spec/spec_helper.rb +8 -5
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/README.md +23 -0
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/rubocop-config.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/CHANGELOG.md +154 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.1/README.rdoc +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/CHANGELOG.md +113 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/actionview-7.2.1/README.rdoc +40 -0
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/CHANGELOG.md +258 -0
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.1/README.rdoc +40 -0
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/CHANGELOG.md +301 -0
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/LICENSE.txt +202 -0
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/README.md +121 -0
- data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/addressable.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/README.md +243 -0
- data/vendor/bundle/ruby/3.3.0/gems/appraisal-2.5.0/appraisal.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/LICENSE.MIT +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/README.YARD.md +12 -0
- data/vendor/bundle/ruby/3.3.0/gems/benchmark-ips-2.13.0/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/benchmark-ips-2.13.0/README.md +279 -0
- data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/LICENSE +56 -0
- data/vendor/bundle/ruby/3.3.0/gems/bigdecimal-3.1.8/bigdecimal.gemspec +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/README.md +258 -0
- data/vendor/bundle/ruby/3.3.0/gems/builder-3.3.0/builder.gemspec +49 -0
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/CHANGELOG.md +934 -0
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/LICENSE +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/README.md +199 -0
- data/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/MIT-LICENSE +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/coderay-1.1.3/README_INDEX.rdoc +123 -0
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/CHANGELOG.md +593 -0
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.4/README.md +407 -0
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/README.md +135 -0
- data/vendor/bundle/ruby/3.3.0/gems/connection_pool-2.4.1/connection_pool.gemspec +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/LICENSE +18 -0
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/README.md +192 -0
- data/vendor/bundle/ruby/3.3.0/gems/crass-1.0.6/crass.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/gems/diff-lcs-1.5.1/README.rdoc +84 -0
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/README.md +409 -0
- data/vendor/bundle/ruby/3.3.0/gems/docile-1.4.1/docile.gemspec +36 -0
- data/vendor/bundle/ruby/3.3.0/gems/drb-2.2.1/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/drb-2.2.1/drb.gemspec +41 -0
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/CHANGELOG +107 -0
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/erubi-1.13.0/README.rdoc +151 -0
- data/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.5/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.5/README.md +127 -0
- data/vendor/bundle/ruby/3.3.0/gems/io-console-0.7.2/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/io-console-0.7.2/README.md +46 -0
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/README.md +405 -0
- data/vendor/bundle/ruby/3.3.0/gems/irb-1.14.0/irb.gemspec +46 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/LICENSE +56 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/README.md +416 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/json.gemspec +68 -0
- data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/CHANGELOG.md +566 -0
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/MIT-LICENSE.txt +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/loofah-2.22.0/README.md +363 -0
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/CHANGELOG.md +15 -0
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/LICENSE +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/README.markdown +101 -0
- data/vendor/bundle/ruby/3.3.0/gems/method_source-1.1.0/method_source.gemspec +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.25.1/README.rdoc +835 -0
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/LICENSE-DEPENDENCIES.md +2224 -0
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/LICENSE.md +9 -0
- data/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.7-x86_64-linux/README.md +290 -0
- data/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/MIT-LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.4.2/LICENSE.txt +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.4.2/parser.gemspec +43 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/CHANGELOG.md +1141 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/LICENSE +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/README.md +466 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/slop/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/CHANGELOG.md +230 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/pry-byebug-3.10.1/README.md +189 -0
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/CHANGELOG.md +491 -0
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.1/README.md +222 -0
- data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
- data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.rdoc +60 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/CHANGELOG.md +994 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/README.md +328 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-test-2.1.0/MIT-LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-test-2.1.0/README.md +139 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-dom-testing-2.2.0/MIT-LICENSE +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-dom-testing-2.2.0/README.md +91 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/CHANGELOG.md +201 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/MIT-LICENSE +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rails-html-sanitizer-1.6.0/README.md +271 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/CHANGELOG.md +361 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/README.rdoc +39 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/app/templates/README.md.tt +24 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +28 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/MIT-LICENSE.tt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/railties-7.2.1/lib/rails/generators/rails/plugin/templates/README.md.tt +28 -0
- data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/README.markdown +227 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/README.rdoc +155 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/rake.gemspec +101 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/README.md +107 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/rake-release.gemspec +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.7.0/LICENSE.rdoc +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rdoc-6.7.0/README.rdoc +129 -0
- data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/LICENSE +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/regexp_parser.gemspec +34 -0
- data/vendor/bundle/ruby/3.3.0/gems/reline-0.5.9/README.md +94 -0
- data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.6/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.6/README.md +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/LICENSE.md +27 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-3.13.0/README.md +47 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.0/LICENSE.md +26 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-core-3.13.0/README.md +389 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.2/LICENSE.md +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-expectations-3.13.2/README.md +326 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.1/LICENSE.md +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-mocks-3.13.1/README.md +465 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-rails-6.1.4/LICENSE.md +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-rails-6.1.4/README.md +381 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.1/LICENSE.md +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/rspec-support-3.13.1/README.md +40 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/README.md +251 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.1/README.md +56 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/CHANGELOG.md +85 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/CHANGELOG.md +116 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/README.md +97 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/CHANGELOG.md +1028 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.4/README.md +109 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/CHANGELOG.md +84 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/README.md +90 -0
- data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/LICENSE.txt +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/README.md +131 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/CHANGELOG.md +191 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-0.22.0/README.md +974 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/LICENSE +202 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/README.md +62 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-cobertura-2.1.0/simplecov-cobertura.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/CHANGELOG.md +81 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/README.md +30 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov-html-0.12.3/simplecov-html.gemspec +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/CHANGELOG.md +13 -0
- data/vendor/bundle/ruby/3.3.0/gems/simplecov_json_formatter-0.1.4/README.md +29 -0
- data/vendor/bundle/ruby/3.3.0/gems/strscan-3.1.0/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/LICENSE.md +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/README.md +45 -0
- data/vendor/bundle/ruby/3.3.0/gems/thor-1.3.1/thor.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/LICENSE +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/tzinfo-2.0.6/README.md +406 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/CHANGELOG.md +196 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/MIT-LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.5.0/README.md +171 -0
- data/vendor/bundle/ruby/3.3.0/gems/useragent-0.16.10/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/useragent-0.16.10/README.md +42 -0
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/README.md +61 -0
- data/vendor/bundle/ruby/3.3.0/gems/webrick-1.8.1/webrick.gemspec +70 -0
- data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.17/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/zeitwerk-2.6.17/README.md +1494 -0
- data/vendor/bundle/ruby/3.3.0/specifications/actionpack-7.2.1.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/actionview-7.2.1.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/specifications/activesupport-7.2.1.gemspec +36 -0
- data/vendor/bundle/ruby/3.3.0/specifications/addressable-2.8.7.gemspec +30 -0
- data/vendor/bundle/ruby/3.3.0/specifications/appraisal-2.5.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/ast-2.4.2.gemspec +30 -0
- data/vendor/bundle/ruby/3.3.0/specifications/benchmark-ips-2.13.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/bigdecimal-3.1.8.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/builder-3.3.0.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/byebug-11.1.3.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/coderay-1.1.3.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/concurrent-ruby-1.3.4.gemspec +24 -0
- data/vendor/bundle/ruby/3.3.0/specifications/connection_pool-2.4.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/crass-1.0.6.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/diff-lcs-1.5.1.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/docile-1.4.1.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/drb-2.2.1.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/erubi-1.13.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/i18n-1.14.5.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/io-console-0.7.2.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/irb-1.14.0.gemspec +30 -0
- data/vendor/bundle/ruby/3.3.0/specifications/json-2.7.2.gemspec +0 -0
- data/vendor/bundle/ruby/3.3.0/specifications/language_server-protocol-3.17.0.3.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/loofah-2.22.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/method_source-1.1.0.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.25.1.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/nokogiri-1.16.7-x86_64-linux.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/parallel-1.26.3.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/parser-3.3.4.2.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/pry-0.14.2.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/pry-byebug-3.10.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/public_suffix-6.0.1.gemspec +24 -0
- data/vendor/bundle/ruby/3.3.0/specifications/racc-1.8.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rack-3.1.7.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rack-session-2.0.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rack-test-2.1.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rackup-2.1.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rails-dom-testing-2.2.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rails-html-sanitizer-1.6.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/railties-7.2.1.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rainbow-3.1.1.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-13.2.1.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-release-1.3.0.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rdoc-6.7.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/regexp_parser-2.9.2.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/reline-0.5.9.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rexml-3.3.6.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-3.13.0.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-core-3.13.0.gemspec +39 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-expectations-3.13.2.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-mocks-3.13.1.gemspec +33 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-rails-6.1.4.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rspec-support-3.13.1.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-1.65.1.gemspec +39 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-ast-1.32.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-capybara-2.21.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-factory_bot-2.26.1.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-performance-1.21.1.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec-3.0.4.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec_rails-2.30.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/ruby-progressbar-1.13.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-0.22.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-cobertura-2.1.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov-html-0.12.3.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/simplecov_json_formatter-0.1.4.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/strscan-3.1.0.gemspec +24 -0
- data/vendor/bundle/ruby/3.3.0/specifications/thor-1.3.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/tzinfo-2.0.6.gemspec +30 -0
- data/vendor/bundle/ruby/3.3.0/specifications/unicode-display_width-2.5.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/useragent-0.16.10.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/webrick-1.8.1.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/zeitwerk-2.6.17.gemspec +22 -0
- metadata +258 -6
- data/spec/dummy/log/test.log +0 -192
@@ -0,0 +1,381 @@
|
|
1
|
+
# rspec-rails [![Code Climate][]][code-climate] [![Gem Version][]][gem-version]
|
2
|
+
|
3
|
+
`rspec-rails` brings the [RSpec][] testing framework to [Ruby on Rails][]
|
4
|
+
as a drop-in alternative to its default testing framework, Minitest.
|
5
|
+
|
6
|
+
In RSpec, tests are not just scripts that verify your application code.
|
7
|
+
They’re also specifications (or _specs,_ for short):
|
8
|
+
detailed explanations of how the application is supposed to behave,
|
9
|
+
expressed in plain English.
|
10
|
+
|
11
|
+
According to [RSpec Rails new versioning strategy][] use:
|
12
|
+
* **[`rspec-rails` 6.x][]** for Rails 6.1 or 7.x.
|
13
|
+
* **[`rspec-rails` 5.x][]** for Rails 5.2 or 6.x.
|
14
|
+
* **[`rspec-rails` 4.x][]** for Rails from 5.x or 6.x.
|
15
|
+
* **[`rspec-rails` 3.x][]** for Rails earlier than 5.0.
|
16
|
+
* **[`rspec-rails` 1.x][]** for Rails 2.x.
|
17
|
+
|
18
|
+
[Code Climate]: https://codeclimate.com/github/rspec/rspec-rails.svg
|
19
|
+
[code-climate]: https://codeclimate.com/github/rspec/rspec-rails
|
20
|
+
[Gem Version]: https://badge.fury.io/rb/rspec-rails.svg
|
21
|
+
[gem-version]: https://badge.fury.io/rb/rspec-rails
|
22
|
+
[RSpec]: https://rspec.info/
|
23
|
+
[Ruby on Rails]: https://rubyonrails.org/
|
24
|
+
[`rspec-rails` 1.x]: https://github.com/dchelimsky/rspec-rails
|
25
|
+
[`rspec-rails` 3.x]: https://github.com/rspec/rspec-rails/tree/3-9-maintenance
|
26
|
+
[`rspec-rails` 4.x]: https://github.com/rspec/rspec-rails/tree/4-1-maintenance
|
27
|
+
[`rspec-rails` 5.x]: https://github.com/rspec/rspec-rails/tree/5-1-maintenance
|
28
|
+
[`rspec-rails` 6.x]: https://github.com/rspec/rspec-rails/tree/6-1-maintenance
|
29
|
+
[RSpec Rails new versioning strategy]: https://github.com/rspec/rspec-rails/blob/main/rfcs/versioning-strategy.md
|
30
|
+
|
31
|
+
## Installation
|
32
|
+
|
33
|
+
**IMPORTANT** This README / branch refers to the 6.1.x stable release series, only bugfixes from this series will
|
34
|
+
be added here. See the [`main` branch on Github](https://github.com/rspec/rspec-rails/tree/main) if you want or
|
35
|
+
require the latest unstable features.
|
36
|
+
|
37
|
+
1. Add `rspec-rails` to **both** the `:development` and `:test` groups
|
38
|
+
of your app’s `Gemfile`:
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
# Run against this stable release
|
42
|
+
group :development, :test do
|
43
|
+
gem 'rspec-rails', '~> 6.1.0'
|
44
|
+
end
|
45
|
+
|
46
|
+
# Or, run against the main branch
|
47
|
+
# (requires main-branch versions of all related RSpec libraries)
|
48
|
+
group :development, :test do
|
49
|
+
%w[rspec-core rspec-expectations rspec-mocks rspec-rails rspec-support].each do |lib|
|
50
|
+
gem lib, git: "https://github.com/rspec/#{lib}.git", branch: 'main'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
```
|
54
|
+
|
55
|
+
(Adding it to the `:development` group is not strictly necessary,
|
56
|
+
but without it, generators and rake tasks must be preceded by `RAILS_ENV=test`.)
|
57
|
+
|
58
|
+
2. Then, in your project directory:
|
59
|
+
|
60
|
+
```sh
|
61
|
+
# Download and install
|
62
|
+
$ bundle install
|
63
|
+
|
64
|
+
# Generate boilerplate configuration files
|
65
|
+
# (check the comments in each generated file for more information)
|
66
|
+
$ rails generate rspec:install
|
67
|
+
create .rspec
|
68
|
+
create spec
|
69
|
+
create spec/spec_helper.rb
|
70
|
+
create spec/rails_helper.rb
|
71
|
+
```
|
72
|
+
|
73
|
+
## Upgrading
|
74
|
+
|
75
|
+
If your project is already using an older version of `rspec-rails`,
|
76
|
+
upgrade to the latest version with:
|
77
|
+
|
78
|
+
```sh
|
79
|
+
$ bundle update rspec-rails
|
80
|
+
```
|
81
|
+
|
82
|
+
RSpec follows [semantic versioning](https://semver.org/),
|
83
|
+
which means that “major version” upgrades (_e.g.,_ 2.x → 3.x)
|
84
|
+
come with **breaking changes**.
|
85
|
+
If you’re upgrading from version 2.x or below,
|
86
|
+
read the [`rspec-rails` upgrade notes][] to find out what to watch out for.
|
87
|
+
|
88
|
+
Be sure to check the general [RSpec upgrade notes][] as well.
|
89
|
+
|
90
|
+
[`rspec-rails` upgrade notes]: https://rspec.info/features/6-0/rspec-rails/upgrade
|
91
|
+
[RSpec upgrade notes]: https://rspec.info/upgrading-from-rspec-2/
|
92
|
+
|
93
|
+
## Usage
|
94
|
+
|
95
|
+
### Creating boilerplate specs with `rails generate`
|
96
|
+
|
97
|
+
```sh
|
98
|
+
# RSpec hooks into built-in generators
|
99
|
+
$ rails generate model user
|
100
|
+
invoke active_record
|
101
|
+
create db/migrate/20181017040312_create_users.rb
|
102
|
+
create app/models/user.rb
|
103
|
+
invoke rspec
|
104
|
+
create spec/models/user_spec.rb
|
105
|
+
|
106
|
+
# RSpec also provides its own spec file generators
|
107
|
+
$ rails generate rspec:model user
|
108
|
+
create spec/models/user_spec.rb
|
109
|
+
|
110
|
+
# List all RSpec generators
|
111
|
+
$ rails generate --help | grep rspec
|
112
|
+
```
|
113
|
+
|
114
|
+
### Running specs
|
115
|
+
|
116
|
+
```sh
|
117
|
+
# Default: Run all spec files (i.e., those matching spec/**/*_spec.rb)
|
118
|
+
$ bundle exec rspec
|
119
|
+
|
120
|
+
# Run all spec files in a single directory (recursively)
|
121
|
+
$ bundle exec rspec spec/models
|
122
|
+
|
123
|
+
# Run a single spec file
|
124
|
+
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb
|
125
|
+
|
126
|
+
# Run a single example from a spec file (by line number)
|
127
|
+
$ bundle exec rspec spec/controllers/accounts_controller_spec.rb:8
|
128
|
+
|
129
|
+
# See all options for running specs
|
130
|
+
$ bundle exec rspec --help
|
131
|
+
```
|
132
|
+
|
133
|
+
**Optional:** If `bundle exec rspec` is too verbose for you,
|
134
|
+
you can generate a binstub at `bin/rspec` and use that instead:
|
135
|
+
|
136
|
+
```sh
|
137
|
+
$ bundle binstubs rspec-core
|
138
|
+
```
|
139
|
+
|
140
|
+
## RSpec DSL Basics (or, how do I write a spec?)
|
141
|
+
|
142
|
+
In RSpec, application behavior is described
|
143
|
+
**first in (almost) plain English, then again in test code**, like so:
|
144
|
+
|
145
|
+
```ruby
|
146
|
+
RSpec.describe 'Post' do #
|
147
|
+
context 'before publication' do # (almost) plain English
|
148
|
+
it 'cannot have comments' do #
|
149
|
+
expect { Post.create.comments.create! }.to raise_error(ActiveRecord::RecordInvalid) # test code
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
```
|
154
|
+
|
155
|
+
Running `rspec` will execute this test code,
|
156
|
+
and then use the plain-English descriptions
|
157
|
+
to generate a report of where the application
|
158
|
+
conforms to (or fails to meet) the spec:
|
159
|
+
|
160
|
+
```
|
161
|
+
$ rspec --format documentation spec/models/post_spec.rb
|
162
|
+
|
163
|
+
Post
|
164
|
+
before publication
|
165
|
+
cannot have comments
|
166
|
+
|
167
|
+
Failures:
|
168
|
+
|
169
|
+
1) Post before publication cannot have comments
|
170
|
+
Failure/Error: expect { Post.create.comments.create! }.to raise_error(ActiveRecord::RecordInvalid)
|
171
|
+
expected ActiveRecord::RecordInvalid but nothing was raised
|
172
|
+
# ./spec/models/post.rb:4:in `block (3 levels) in <top (required)>'
|
173
|
+
|
174
|
+
Finished in 0.00527 seconds (files took 0.29657 seconds to load)
|
175
|
+
1 example, 1 failure
|
176
|
+
|
177
|
+
Failed examples:
|
178
|
+
|
179
|
+
rspec ./spec/models/post_spec.rb:3 # Post before publication cannot have comments
|
180
|
+
```
|
181
|
+
|
182
|
+
For an in-depth look at the RSpec DSL, including lots of examples,
|
183
|
+
read the official Cucumber documentation for [RSpec Core][].
|
184
|
+
|
185
|
+
[RSpec Core]: https://rspec.info/features/3-12/rspec-core
|
186
|
+
|
187
|
+
### Helpful Rails Matchers
|
188
|
+
|
189
|
+
In RSpec, assertions are called _expectations,_
|
190
|
+
and every expectation is built around a _matcher._
|
191
|
+
When you `expect(a).to eq(b)`, you’re using the `eq` matcher.
|
192
|
+
|
193
|
+
In addition to [the matchers that come standard in RSpec][],
|
194
|
+
here are some extras that make it easier
|
195
|
+
to test the various parts of a Rails system:
|
196
|
+
|
197
|
+
| RSpec matcher | Delegates to | Available in | Notes |
|
198
|
+
| ------------------------ | ------------------- | ------------------------------- | -------------------------------------------------------- |
|
199
|
+
| [`be_a_new`][] | | all | primarily intended for controller specs |
|
200
|
+
| [`render_template`][] | `assert_template` | request / controller / view | use with `expect(response).to` |
|
201
|
+
| [`redirect_to`][] | `assert_redirect` | request / controller | use with `expect(response).to` |
|
202
|
+
| [`route_to`] | `assert_recognizes` | routing / controller | use with `expect(...).to route_to` |
|
203
|
+
| [`be_routable`] | | routing / controller | use with `expect(...).not_to be_routable` |
|
204
|
+
| [`have_http_status`][] | | request / controller / feature | |
|
205
|
+
| [`match_array`][] | | all | for comparing arrays of ActiveRecord objects |
|
206
|
+
| [`have_been_enqueued`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
|
207
|
+
| [`have_enqueued_job`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
|
208
|
+
|
209
|
+
Follow the links above for examples of how each matcher is used.
|
210
|
+
|
211
|
+
[the matchers that come standard in RSpec]: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers
|
212
|
+
[`be_a_new`]: https://rspec.info/features/6-0/rspec-rails/matchers/new-record-matcher
|
213
|
+
[`render_template`]: https://rspec.info/features/6-0/rspec-rails/matchers/render-template-matcher
|
214
|
+
[`redirect_to`]: https://rspec.info/features/6-0/rspec-rails/matchers/redirect-to-matcher
|
215
|
+
[`route_to`]: https://rspec.info/features/6-0/rspec-rails/routing-specs/route-to-matcher
|
216
|
+
[`be_routable`]: https://rspec.info/features/6-0/rspec-rails/routing-specs/be-routable-matcher
|
217
|
+
[`have_http_status`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-http-status-matcher
|
218
|
+
[`match_array`]: https://rspec.info/features/6-0/rspec-rails/matchers/relation-match-array
|
219
|
+
[`have_been_enqueued`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-been-enqueued-matcher
|
220
|
+
[`have_enqueued_job`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-enqueued-job-matcher
|
221
|
+
|
222
|
+
### What else does RSpec Rails add?
|
223
|
+
|
224
|
+
For a comprehensive look at RSpec Rails’ features,
|
225
|
+
read the [official Cucumber documentation][].
|
226
|
+
|
227
|
+
[official Cucumber documentation]: https://rspec.info/features/6-0/rspec-rails
|
228
|
+
|
229
|
+
## What tests should I write?
|
230
|
+
|
231
|
+
RSpec Rails defines ten different _types_ of specs
|
232
|
+
for testing different parts of a typical Rails application.
|
233
|
+
Each one inherits from one of Rails’ built-in `TestCase` classes,
|
234
|
+
meaning the helper methods provided by default in Rails tests
|
235
|
+
are available in RSpec, as well.
|
236
|
+
|
237
|
+
| Spec type | Corresponding Rails test class |
|
238
|
+
| -------------- | -------------------------------- |
|
239
|
+
| [model][] | |
|
240
|
+
| [controller][] | [`ActionController::TestCase`][] |
|
241
|
+
| [mailer][] | `ActionMailer::TestCase` |
|
242
|
+
| [job][] | |
|
243
|
+
| [view][] | `ActionView::TestCase` |
|
244
|
+
| [routing][] | |
|
245
|
+
| [helper][] | `ActionView::TestCase` |
|
246
|
+
| [request][] | [`ActionDispatch::IntegrationTest`][] |
|
247
|
+
| [feature][] | |
|
248
|
+
| [system][] | [`ActionDispatch::SystemTestCase`][] |
|
249
|
+
|
250
|
+
Follow the links above to see examples of each spec type,
|
251
|
+
or for official Rails API documentation on the given `TestCase` class.
|
252
|
+
|
253
|
+
> **Note: This is not a checklist.**
|
254
|
+
>
|
255
|
+
> Ask a hundred developers how to test an application,
|
256
|
+
> and you’ll get a hundred different answers.
|
257
|
+
>
|
258
|
+
> RSpec Rails provides thoughtfully selected features
|
259
|
+
> to encourage good testing practices, but there’s no “right” way to do it.
|
260
|
+
> Ultimately, it’s up to you to decide how your test suite will be composed.
|
261
|
+
|
262
|
+
When creating a spec file,
|
263
|
+
assign it a type in the top-level `describe` block, like so:
|
264
|
+
|
265
|
+
```ruby
|
266
|
+
# spec/models/user_spec.rb
|
267
|
+
|
268
|
+
RSpec.describe User, type: :model do
|
269
|
+
...
|
270
|
+
```
|
271
|
+
|
272
|
+
[request]: https://rspec.info/features/6-0/rspec-rails/request-specs/request-spec
|
273
|
+
[feature]: https://rspec.info/features/6-0/rspec-rails/feature-specs/feature-spec
|
274
|
+
[system]: https://rspec.info/features/6-0/rspec-rails/system-specs/system-specs
|
275
|
+
[model]: https://rspec.info/features/6-0/rspec-rails/model-specs
|
276
|
+
[controller]: https://rspec.info/features/6-0/rspec-rails/controller-specs
|
277
|
+
[mailer]: https://rspec.info/features/6-0/rspec-rails/mailer-specs
|
278
|
+
[job]: https://rspec.info/features/6-0/rspec-rails/job-specs/job-spec
|
279
|
+
[view]: https://rspec.info/features/6-0/rspec-rails/view-specs/view-spec
|
280
|
+
[routing]: https://rspec.info/features/6-0/rspec-rails/routing-specs
|
281
|
+
[helper]: https://rspec.info/features/6-0/rspec-rails/helper-specs/helper-spec
|
282
|
+
[`ActionDispatch::IntegrationTest`]: https://api.rubyonrails.org/classes/ActionDispatch/IntegrationTest.html
|
283
|
+
[`ActionDispatch::SystemTestCase`]: https://api.rubyonrails.org/classes/ActionDispatch/SystemTestCase.html
|
284
|
+
[`ActionController::TestCase`]: https://api.rubyonrails.org/classes/ActionController/TestCase.html
|
285
|
+
[in the appropriate folder]: https://rspec.info/features/6-0/rspec-rails/directory-structure
|
286
|
+
|
287
|
+
### System specs, feature specs, request specs–what’s the difference?
|
288
|
+
|
289
|
+
RSpec Rails provides some end-to-end (entire application) testing capability
|
290
|
+
to specify the interaction with the client.
|
291
|
+
|
292
|
+
#### System specs
|
293
|
+
|
294
|
+
Also called **acceptance tests**, **browser tests**, or **end-to-end tests**,
|
295
|
+
system specs test the application from the perspective of a _human client._
|
296
|
+
The test code walks through a user’s browser interactions,
|
297
|
+
|
298
|
+
* `visit '/login'`
|
299
|
+
* `fill_in 'Name', with: 'jdoe'`
|
300
|
+
|
301
|
+
and the expectations revolve around page content.
|
302
|
+
|
303
|
+
* `expect(page).to have_text('Welcome')`
|
304
|
+
|
305
|
+
Because system specs are a wrapper around Rails’ built-in `SystemTestCase`,
|
306
|
+
they’re only available on Rails 5.1+.
|
307
|
+
(Feature specs serve the same purpose, but without this dependency.)
|
308
|
+
|
309
|
+
#### Feature specs
|
310
|
+
|
311
|
+
Before Rails introduced system testing facilities,
|
312
|
+
feature specs were the only spec type for end-to-end testing.
|
313
|
+
While the RSpec team now [officially recommends system specs][] instead,
|
314
|
+
feature specs are still fully supported, look basically identical,
|
315
|
+
and work on older versions of Rails.
|
316
|
+
|
317
|
+
On the other hand, feature specs require non-trivial configuration
|
318
|
+
to get some important features working,
|
319
|
+
like JavaScript testing or making sure each test runs with a fresh DB state.
|
320
|
+
With system specs, this configuration is provided out-of-the-box.
|
321
|
+
|
322
|
+
Like system specs, feature specs require the [Capybara][] gem.
|
323
|
+
Rails 5.1+ includes it by default as part of system tests,
|
324
|
+
but if you don’t have the luxury of upgrading,
|
325
|
+
be sure to add it to the `:test` group of your `Gemfile` first:
|
326
|
+
|
327
|
+
```ruby
|
328
|
+
group :test do
|
329
|
+
gem "capybara"
|
330
|
+
end
|
331
|
+
```
|
332
|
+
|
333
|
+
[officially recommends system specs]: https://rspec.info/blog/2017/10/rspec-3-7-has-been-released/#rails-actiondispatchsystemtest-integration-system-specs
|
334
|
+
[Capybara]: https://github.com/teamcapybara/capybara
|
335
|
+
|
336
|
+
#### Request specs
|
337
|
+
|
338
|
+
Request specs are for testing the application
|
339
|
+
from the perspective of a _machine client._
|
340
|
+
They begin with an HTTP request and end with the HTTP response,
|
341
|
+
so they’re faster than feature specs,
|
342
|
+
but do not examine your app’s UI or JavaScript.
|
343
|
+
|
344
|
+
Request specs provide a high-level alternative to controller specs.
|
345
|
+
In fact, as of RSpec 3.5, both the Rails and RSpec teams
|
346
|
+
[discourage directly testing controllers][]
|
347
|
+
in favor of functional tests like request specs.
|
348
|
+
|
349
|
+
When writing them, try to answer the question,
|
350
|
+
“For a given HTTP request (verb + path + parameters),
|
351
|
+
what HTTP response should the application return?”
|
352
|
+
|
353
|
+
[discourage directly testing controllers]: https://rspec.info/blog/2016/07/rspec-3-5-has-been-released/#rails-support-for-rails-5
|
354
|
+
|
355
|
+
## Contributing
|
356
|
+
|
357
|
+
- [Build details](BUILD_DETAIL.md)
|
358
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
359
|
+
- [Detailed contributing guide](CONTRIBUTING.md)
|
360
|
+
|
361
|
+
Once you’ve cloned the repo and [set up the environment](DEVELOPMENT.md),
|
362
|
+
you can run the specs and Cucumber features, or submit a pull request.
|
363
|
+
|
364
|
+
## See Also
|
365
|
+
|
366
|
+
### RSpec base libraries
|
367
|
+
|
368
|
+
* https://github.com/rspec/rspec
|
369
|
+
* https://github.com/rspec/rspec-core
|
370
|
+
* https://github.com/rspec/rspec-expectations
|
371
|
+
* https://github.com/rspec/rspec-mocks
|
372
|
+
|
373
|
+
### Recommended third-party extensions
|
374
|
+
|
375
|
+
* [FactoryBot](https://github.com/thoughtbot/factory_bot)
|
376
|
+
* [Capybara](https://github.com/teamcapybara/capybara)
|
377
|
+
(Included by default in Rails 5.1+.
|
378
|
+
Note that [additional configuration is required][] to use the Capybara DSL
|
379
|
+
anywhere other than system specs and feature specs.)
|
380
|
+
|
381
|
+
[additional configuration is required]: https://rubydoc.info/gems/rspec-rails/file/Capybara.md
|
@@ -0,0 +1,23 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
====================
|
3
|
+
|
4
|
+
* Copyright © 2013 David Chelimsky, Myron Marston, Jon Rowe, Sam Phippen, Xavier Shay, Bradley Schaefer
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
7
|
+
a copy of this software and associated documentation files (the
|
8
|
+
"Software"), to deal in the Software without restriction, including
|
9
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
10
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
11
|
+
permit persons to whom the Software is furnished to do so, subject to
|
12
|
+
the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be
|
15
|
+
included in all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
18
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
20
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
21
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
22
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
23
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# RSpec::Support [![Build Status](https://github.com/rspec/rspec-support/workflows/RSpec%20CI/badge.svg)](https://github.com/rspec/rspec-support/actions)
|
2
|
+
|
3
|
+
`RSpec::Support` provides common functionality to `RSpec::Core`,
|
4
|
+
`RSpec::Expectations` and `RSpec::Mocks`. It is considered
|
5
|
+
suitable for internal use only at this time.
|
6
|
+
|
7
|
+
## Installation / Usage
|
8
|
+
|
9
|
+
Install one or more of the `RSpec` gems.
|
10
|
+
|
11
|
+
Want to run against the `main` branch? You'll need to include the dependent
|
12
|
+
RSpec repos as well. Add the following to your `Gemfile`:
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
%w[rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
|
16
|
+
gem lib, :git => "https://github.com/rspec/#{lib}.git", :branch => 'main'
|
17
|
+
end
|
18
|
+
```
|
19
|
+
|
20
|
+
## Contributing
|
21
|
+
|
22
|
+
Once you've set up the environment, you'll need to cd into the working
|
23
|
+
directory of whichever repo you want to work in. From there you can run the
|
24
|
+
specs and cucumber features, and make patches.
|
25
|
+
|
26
|
+
NOTE: You do not need to use rspec-dev to work on a specific RSpec repo. You
|
27
|
+
can treat each RSpec repo as an independent project.
|
28
|
+
|
29
|
+
- [Build details](BUILD_DETAIL.md)
|
30
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
31
|
+
- [Detailed contributing guide](CONTRIBUTING.md)
|
32
|
+
- [Development setup guide](DEVELOPMENT.md)
|
33
|
+
|
34
|
+
## Patches
|
35
|
+
|
36
|
+
Please submit a pull request or a github issue. If you submit an issue, please
|
37
|
+
include a link to either of:
|
38
|
+
|
39
|
+
* a gist (or equivalent) of the patch
|
40
|
+
* a branch or commit in your github fork of the repo
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2012-24 Bozhidar Batsov
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|