Diff of the two buildlogs: -- --- b1/build.log 2025-02-11 16:16:10.445136636 +0000 +++ b2/build.log 2025-02-11 16:18:59.077571495 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Mar 16 10:38:05 -12 2026 -I: pbuilder-time-stamp: 1773700685 +I: Current time: Wed Feb 12 06:16:13 +14 2025 +I: pbuilder-time-stamp: 1739290573 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -28,52 +28,84 @@ dpkg-source: info: applying ignore-mail-warning.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3700471/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4023136/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Feb 11 16:16 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/4023136/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4023136/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='92807b9da163494c9a54f4ff14c90adb' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='3700471' - PS1='# ' - PS2='> ' + INVOCATION_ID=63f92d17362e4e83911e29886f98b256 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=4023136 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.YAJsyhmE/pbuilderrc_BoJd --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.YAJsyhmE/b1 --logfile b1/build.log ruby-rspec-rails_6.1.5-2.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.YAJsyhmE/pbuilderrc_iKTV --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.YAJsyhmE/b2 --logfile b2/build.log ruby-rspec-rails_6.1.5-2.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.1.0-31-cloud-arm64 #1 SMP Debian 6.1.128-1 (2025-02-07) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-31-cloud-arm64 #1 SMP Debian 6.1.128-1 (2025-02-07) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3700471/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/4023136/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -347,7 +379,7 @@ Get: 204 http://deb.debian.org/debian unstable/main arm64 ruby-selenium-webdriver all 4.4.0-1 [119 kB] Get: 205 http://deb.debian.org/debian unstable/main arm64 ruby-sqlite3 arm64 1.6.9-2+b1 [53.9 kB] Get: 206 http://deb.debian.org/debian unstable/main arm64 ruby-warning all 1.3.0-1 [8968 B] -Fetched 60.5 MB in 1s (96.8 MB/s) +Fetched 60.5 MB in 1s (61.1 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19920 files and directories currently installed.) @@ -1019,8 +1051,8 @@ Setting up tzdata (2025a-2) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Mar 16 22:38:31 UTC 2026. -Universal Time is now: Mon Mar 16 22:38:31 UTC 2026. +Local time is now: Tue Feb 11 16:17:22 UTC 2025. +Universal Time is now: Tue Feb 11 16:17:22 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-websocket-extensions (0.1.5-2) ... @@ -1206,7 +1238,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-rspec-rails-6.1.5/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-rspec-rails_6.1.5-2_source.changes +I: user script /srv/workspace/pbuilder/4023136/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/4023136/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-rspec-rails-6.1.5/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-rspec-rails_6.1.5-2_source.changes dpkg-buildpackage: info: source package ruby-rspec-rails dpkg-buildpackage: info: source version 6.1.5-2 dpkg-buildpackage: info: source distribution unstable @@ -1239,7 +1275,7 @@ │ ruby-rspec-rails: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20260316-3710957-m0i3z7/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250212-4057146-h0ziah/gemspec WARNING: open-ended dependency on actionpack (>= 6.1) is not recommended if actionpack is semantically versioned, use: add_runtime_dependency "actionpack", "~> 6.1" @@ -1254,7 +1290,7 @@ Name: rspec-rails Version: 6.1.5 File: rspec-rails-6.1.5.gem -/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-rspec-rails/usr/share/rubygems-integration/all /tmp/d20260316-3710957-m0i3z7/rspec-rails-6.1.5.gem +/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-rspec-rails/usr/share/rubygems-integration/all /tmp/d20250212-4057146-h0ziah/rspec-rails-6.1.5.gem /build/reproducible-path/ruby-rspec-rails-6.1.5/debian/ruby-rspec-rails/usr/share/rubygems-integration/all/gems/rspec-rails-6.1.5/lib/generators/rspec.rb /build/reproducible-path/ruby-rspec-rails-6.1.5/debian/ruby-rspec-rails/usr/share/rubygems-integration/all/gems/rspec-rails-6.1.5/lib/generators/rspec/channel/channel_generator.rb /build/reproducible-path/ruby-rspec-rails-6.1.5/debian/ruby-rspec-rails/usr/share/rubygems-integration/all/gems/rspec-rails-6.1.5/lib/generators/rspec/channel/templates/channel_spec.rb.erb @@ -1379,400 +1415,602 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-rspec-rails-6.1.5/debian/ruby-rspec-rails/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-rspec-rails-6.1.5/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/aarch64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec ./spec/rspec/rails/active_model_spec.rb ./spec/rspec/rails/active_record_spec.rb ./spec/rspec/rails/assertion_adapter_spec.rb ./spec/rspec/rails/assertion_delegator_spec.rb ./spec/rspec/rails/configuration_spec.rb ./spec/rspec/rails/example/channel_example_group_spec.rb ./spec/rspec/rails/example/controller_example_group_spec.rb ./spec/rspec/rails/example/feature_example_group_spec.rb ./spec/rspec/rails/example/helper_example_group_spec.rb ./spec/rspec/rails/example/job_example_group_spec.rb ./spec/rspec/rails/example/mailbox_example_group_spec.rb ./spec/rspec/rails/example/model_example_group_spec.rb ./spec/rspec/rails/example/rails_example_group_spec.rb ./spec/rspec/rails/example/request_example_group_spec.rb ./spec/rspec/rails/example/routing_example_group_spec.rb ./spec/rspec/rails/example/system_example_group_spec.rb ./spec/rspec/rails/example/view_example_group_spec.rb ./spec/rspec/rails/fixture_file_upload_support_spec.rb ./spec/rspec/rails/fixture_support_spec.rb ./spec/rspec/rails/matchers/action_cable/have_broadcasted_to_spec.rb ./spec/rspec/rails/matchers/action_cable/have_stream_spec.rb ./spec/rspec/rails/matchers/action_mailbox_spec.rb ./spec/rspec/rails/matchers/active_job_spec.rb ./spec/rspec/rails/matchers/be_a_new_spec.rb ./spec/rspec/rails/matchers/be_new_record_spec.rb ./spec/rspec/rails/matchers/be_routable_spec.rb ./spec/rspec/rails/matchers/be_valid_spec.rb ./spec/rspec/rails/matchers/has_spec.rb ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb ./spec/rspec/rails/matchers/have_http_status_spec.rb ./spec/rspec/rails/matchers/have_rendered_spec.rb ./spec/rspec/rails/matchers/redirect_to_spec.rb ./spec/rspec/rails/matchers/relation_match_array_spec.rb ./spec/rspec/rails/matchers/route_to_spec.rb ./spec/rspec/rails/matchers/send_email_spec.rb ./spec/rspec/rails/minitest_lifecycle_adapter_spec.rb ./spec/rspec/rails/setup_and_teardown_adapter_spec.rb ./spec/rspec/rails/view_rendering_spec.rb ./spec/rspec/rails/view_spec_methods_spec.rb ./spec/rspec/rails_spec.rb --format documentation -Randomized with seed 282 +Randomized with seed 4482 -ActiveSupport::Relation match_array matcher - verifies that the scope returns the records on the right hand side, regardless of order - fails if the scope encompasses more records than on the right hand side - fails if the scope encompasses fewer records than on the right hand side +RSpec::Rails::ControllerExampleGroup + handles methods invoked via `method_missing` that use keywords + includes routing matchers + with explicit subject + uses the specified subject instead of the controller + with inferred anonymous controller + defaults to inferring anonymous controller class + when infer_base_class_for_anonymous_controllers is true + infers the anonymous controller class + infers the anonymous controller class when no ApplicationController is present + when infer_base_class_for_anonymous_controllers is false + sets the anonymous controller class to ApplicationController + sets the anonymous controller class to ActiveController::Base when no ApplicationController is present + controller name + sets name as AnonymousController if it inherits outer group's anonymous controller + sets the name as AnonymousController if it's anonymous + sets name as AnonymousController if defined as ApplicationController + sets the name according to defined controller if it is not anonymous + sets name as AnonymousController if the controller is abstract + with implicit subject + uses the controller as the subject + doesn't cause let definition priority to be changed + in a namespace + controller name + sets the name according to the defined controller namespace if it is not anonymous + sets the name as 'AnonymousController' if the controller is abstract + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :controller` + for an example group defined in a file in the ./spec/controllers/ directory + does not include itself in the example group + does not tag groups in that directory with `type: :controller` + for an example group defined in a file in the .\spec\controllers\ directory + does not tag groups in that directory with `type: :controller` + does not include itself in the example group + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :controller` + for an example group defined in a file in the .\spec\controllers\ directory + allows users to override the type + includes itself in the example group + tags groups in that directory with `type: :controller` + applies configured `before(:context)` hooks with `type: :controller` metadata + for an example group defined in a file in the ./spec/controllers/ directory + applies configured `before(:context)` hooks with `type: :controller` metadata + includes itself in the example group + tags groups in that directory with `type: :controller` + allows users to override the type + #controller + calls NamedRouteCollection#route_defined? when it checks that given route is defined or not + delegates named route helpers to the underlying controller + #bypass_rescue + overrides the rescue_with_handler method on the controller to raise submitted error -RSpec::Rails::MinitestLifecycleAdapter - invokes minitest lifecycle hooks at the appropriate times - allows let variables named 'send' +RSpec::Rails::RoutingExampleGroup + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :routing` + for an example group defined in a file in the ./spec/routing/ directory + allows users to override the type + tags groups in that directory with `type: :routing` + includes itself in the example group + applies configured `before(:context)` hooks with `type: :routing` metadata + for an example group defined in a file in the .\spec\routing\ directory + tags groups in that directory with `type: :routing` + includes itself in the example group + allows users to override the type + applies configured `before(:context)` hooks with `type: :routing` metadata + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :routing` + for an example group defined in a file in the ./spec/routing/ directory + does not tag groups in that directory with `type: :routing` + does not include itself in the example group + for an example group defined in a file in the .\spec\routing\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :routing` + named routes + delegates them to the route_set -Configuration - fixture support is included with metadata `:use_fixtures` - metadata `type: :model` sets up model example groups - #filter_rails_from_backtrace! adds exclusion patterns for rails gems - has a default #file_fixture_path of 'spec/fixtures/files' - metadata `type: :view` sets up view example groups - metadata `type: :request` sets up request example groups - metadata `type: :mailer` sets up mailer example groups - metadata `type: :helper` sets up helper example groups - metadata `type: :feature` sets up feature example groups - metadata `type: :routing` sets up routing example groups - metadata `type: :controller` sets up controller example groups - adds 'vendor/' to the backtrace exclusions - adds 'lib/rspec/rails' to the backtrace exclusions - adds settings - `#infer_base_class_for_anonymous_controllers?` is `true` by default - `#rendering_views` is `nil` by default - `#use_instantiated_fixtures?` is `false` by default - `#global_fixtures` is `nil` by default - `#rendering_views?` is `false` by default - `#global_fixtures?` is `false` by default - `#fixture_path` is `nil` by default - `#rendering_views?` is `false` by default - `#use_transactional_fixtures?` is `false` by default - `#render_views?` is false by default - `#infer_base_class_for_anonymous_controllers` is `true` by default - `#use_transactional_examples` is an alias for `use_transactional_fixtures` - `#use_instantiated_fixtures` is `nil` by default - `#fixture_path?` is `false` by default - `#use_instantiated_fixtures?` is `false` by default - `#use_transactional_fixtures?` is `false` by default - `#fixture_path?` is `false` by default - `#infer_base_class_for_anonymous_controllers?` is `true` by default - `#use_transactional_fixtures` is `nil` by default - `#render_views` sets `render_views?` to `true` - `#global_fixtures?` is `false` by default - `#infer_base_class_for_anonymous_controllers=` - sets `infer_base_class_for_anonymous_controllers` to the provided value - changes `infer_base_class_for_anonymous_controllers?` to the true for a truthy value - `#use_transactional_fixtures=` - sets `use_transactional_fixtures` to the provided value - changes `use_transactional_fixtures?` to the true for a truthy value - `#rendering_views=` - changes `rendering_views?` to the true for a truthy value - sets `rendering_views` to the provided value - `#fixture_path=` - changes `fixture_path?` to the true for a truthy value - sets `fixture_path` to the provided value - `#render_views=` - sets `render_views?` to the truthiness of the provided value - `#global_fixtures=` - sets `global_fixtures` to the provided value - changes `global_fixtures?` to the true for a truthy value - `#use_instantiated_fixtures=` - changes `use_instantiated_fixtures?` to the true for a truthy value - sets `use_instantiated_fixtures` to the provided value - clears ActionMailer::Base::Deliveries after each example - only has deliveries from this test (e.g. from email_2@example.com) (PENDING: Temporarily skipped with xit) - only has deliveries from this test (e.g. from email@example.com) (PENDING: Temporarily skipped with xit) - #infer_spec_type_from_file_location! - sets the type to `:request` for file path `spec/api` - sets the type to `:helper` for file path `spec/helpers` - sets the type to `:mailer` for file path `spec/mailers` - sets the type to `:model` for file path `spec/models` - sets the type to `:view` for file path `spec/views` - sets the type to `:routing` for file path `spec/routing` - sets the type to `:feature` for file path `spec/features` - sets the type to `:request` for file path `spec/integration` - sets the type to `:request` for file path `spec/requests` - sets the type to `:controller` for file path `spec/controllers` +RSpec::Rails::RequestExampleGroup + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :request` + for an example group defined in a file in the ./spec/requests/ directory + includes itself in the example group + tags groups in that directory with `type: :request` + allows users to override the type + applies configured `before(:context)` hooks with `type: :request` metadata + for an example group defined in a file in the ./spec/api/ directory + allows users to override the type + tags groups in that directory with `type: :request` + applies configured `before(:context)` hooks with `type: :request` metadata + includes itself in the example group + for an example group defined in a file in the .\spec\integration\ directory + allows users to override the type + includes itself in the example group + applies configured `before(:context)` hooks with `type: :request` metadata + tags groups in that directory with `type: :request` + for an example group defined in a file in the .\spec\api\ directory + allows users to override the type + tags groups in that directory with `type: :request` + applies configured `before(:context)` hooks with `type: :request` metadata + includes itself in the example group + for an example group defined in a file in the .\spec\requests\ directory + includes itself in the example group + applies configured `before(:context)` hooks with `type: :request` metadata + tags groups in that directory with `type: :request` + allows users to override the type + for an example group defined in a file in the ./spec/integration/ directory + tags groups in that directory with `type: :request` + applies configured `before(:context)` hooks with `type: :request` metadata + includes itself in the example group + allows users to override the type + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :request` + for an example group defined in a file in the ./spec/api/ directory + does not tag groups in that directory with `type: :request` + does not include itself in the example group + for an example group defined in a file in the .\spec\integration\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :request` + for an example group defined in a file in the .\spec\requests\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :request` + for an example group defined in a file in the ./spec/integration/ directory + does not tag groups in that directory with `type: :request` + does not include itself in the example group + for an example group defined in a file in the ./spec/requests/ directory + does not tag groups in that directory with `type: :request` + does not include itself in the example group + for an example group defined in a file in the .\spec\api\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :request` -RSpec::Rails::HelperExampleGroup::ClassMethods - determine_default_helper_class - the described is a module - returns the module - the described is a class - returns nil +ActiveRecord support + with partial double verification enabled + allows you to stub `ActiveRecord::Base` + allows you to stub abstract classes + with partial double verification disabled + allows you to stub `ActiveRecord::Base` + allows you to stub abstract classes + +be_routable + provides a description + with should_not + fails if routes recognize the path + passes if routes do not recognize the path + with should + fails if routes do not recognize the path + passes if routes recognize the path + +render_template + with should + when assert_template passes + passes + when assert_template fails + uses failure message from assert_template + when fails due to some other exception + raises that exception + given a string + delegates to assert_template + given a symbol + converts to_s and delegates to assert_template + given a hash + delegates to assert_template + with should_not + when fails with a redirect + gives informative error message + with a badly formatted error message + falls back to something informative + when assert_template fails + passes + when fails due to some other exception + raises that exception + when assert_template passes + fails with custom failure message + +RSpec::Rails::SetupAndTeardownAdapter + .setup + registers prepend_before hooks for the Rails' setup methods + registers before hooks in the order setup is received + registers teardown hooks in the order setup is received + +RSpec::Rails::FeatureExampleGroup + includes Rails route helpers + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :feature` + for an example group defined in a file in the .\spec\features\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :feature` + for an example group defined in a file in the ./spec/features/ directory + does not tag groups in that directory with `type: :feature` + does not include itself in the example group + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :feature` + for an example group defined in a file in the ./spec/features/ directory + includes itself in the example group + allows users to override the type + applies configured `before(:context)` hooks with `type: :feature` metadata + tags groups in that directory with `type: :feature` + for an example group defined in a file in the .\spec\features\ directory + applies configured `before(:context)` hooks with `type: :feature` metadata + allows users to override the type + tags groups in that directory with `type: :feature` + includes itself in the example group + #visit + is resistant to load order errors + raises an error informing about missing Capybara + when nested inside a request example group + includes Rails route helpers + +RSpec::Rails::MailboxExampleGroup + #process + sends mail to the mailbox + #have_bounced + raises on unbounced mail + does not raise otherwise + #have_failed + raises on unfailed mail + does not raise otherwise + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :mailbox` + for an example group defined in a file in the ./spec/mailboxes/ directory + includes itself in the example group + applies configured `before(:context)` hooks with `type: :mailbox` metadata + tags groups in that directory with `type: :mailbox` + allows users to override the type + for an example group defined in a file in the .\spec\mailboxes\ directory + tags groups in that directory with `type: :mailbox` + applies configured `before(:context)` hooks with `type: :mailbox` metadata + allows users to override the type + includes itself in the example group + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :mailbox` + for an example group defined in a file in the ./spec/mailboxes/ directory + does not tag groups in that directory with `type: :mailbox` + does not include itself in the example group + for an example group defined in a file in the .\spec\mailboxes\ directory + does not tag groups in that directory with `type: :mailbox` + does not include itself in the example group + #have_been_delivered + raises on undelivered mail + does not raise otherwise + +be_valid matcher + does not include the validation context if not provided + includes the error messages for simple implementations of error messages + includes a brief error message when error message is wrong arity + includes a brief error message for the simplest implementation of validity + includes a failure message for the negative case + uses a custom failure message if provided + includes the validation context if provided + includes the error messages in the failure message + +be_new_record + a persisted record + fails + fails with custom failure message + a new record + passes + fails with custom failure message + +have_stream matchers + have_stream_from + raises when no subscription started + passes + fails with message + raises ArgumentError when no subscription passed to expect + with negated form + passes + fails with message + with composable matcher + fails with message + passes + have_stream_for + passes + raises ArgumentError when no subscription passed to expect + raises when no subscription started + fails with message + with negated form + fails with message + passes + have_streams + does not allow usage + raises when no subscription started + with negated form + raises when no subscription started + raises ArgumentError when no subscription passed to expect + passes with negated form + fails with message + +ActionMailbox matchers + receive_inbound_email + passes when negated when it doesn't receive inbound email + passes when it receives inbound email + fails when it doesn't receive inbound email + fails when negated when it receives inbound email + +RSpec::Rails::HelperExampleGroup + provides a controller_path based on the helper module's name + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :helper` + for an example group defined in a file in the ./spec/helpers/ directory + tags groups in that directory with `type: :helper` + includes itself in the example group + applies configured `before(:context)` hooks with `type: :helper` metadata + allows users to override the type + for an example group defined in a file in the .\spec\helpers\ directory + tags groups in that directory with `type: :helper` + allows users to override the type + applies configured `before(:context)` hooks with `type: :helper` metadata + includes itself in the example group + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :helper` + for an example group defined in a file in the .\spec\helpers\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :helper` + for an example group defined in a file in the ./spec/helpers/ directory + does not tag groups in that directory with `type: :helper` + does not include itself in the example group + #helper + includes ApplicationHelper + returns the instance of AV::Base provided by AV::TC::Behavior have_http_status - with general status code group :error + with a numeric status code + has a failure message reporting the expected and actual status codes + describes responding with the numeric status code + has a negated failure message reporting the expected status code behaves like supports different response instances - has a negated failure message reporting it was given another type has a failure message reporting it was given another type + has a negated failure message reporting it was given another type returns false given another type - given an ActionDispatch::TestResponse - returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code + given an ActionDispatch::TestResponse + returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - behaves like status code matcher - has a negated failure message reporting the expected and actual status codes - has a failure message reporting the expected and actual status codes - describes behaves like status code matcher - matching a response - returns false for a response with a different code - returns true for a response with code - with a symbolic status - has a negated failure message reporting the expected status code - raises an ArgumentError - describes responding by the symbolic and associated numeric status code - has a failure message reporting the expected and actual statuses + matching a response + returns false for a response with a different code + returns true for a response with the same code + http status :not_found behaves like supports different response instances - has a failure message reporting it was given another type - has a negated failure message reporting it was given another type returns false given another type - given a Rack::MockResponse - returns true for a response with the same code + has a negated failure message reporting it was given another type + has a failure message reporting it was given another type given an ActionDispatch::TestResponse returns true for a response with the same code - given something that acts as a Capybara::Session - returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code - matching a response - returns false for a response with a different code - returns true for a response with the equivalent code - http status :error - behaves like does not use deprecated methods for Rails 5.2+ - does not use deprecated method for Rails >= 5.2 - with general status code group :redirect + given a Rack::MockResponse + returns true for a response with the same code + given something that acts as a Capybara::Session + returns true for a response with the same code + with general status code group :server_error behaves like supports different response instances - returns false given another type has a failure message reporting it was given another type has a negated failure message reporting it was given another type - given a Rack::MockResponse - returns true for a response with the same code + returns false given another type given an ActionDispatch::Response returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code + given a Rack::MockResponse + returns true for a response with the same code behaves like status code matcher has a negated failure message reporting the expected and actual status codes has a failure message reporting the expected and actual status codes describes behaves like status code matcher matching a response - returns true for a response with code returns false for a response with a different code - with deprecated rack status codes - supports the original names - http status :server_error + returns true for a response with code + with general status code group :not_found behaves like supports different response instances has a failure message reporting it was given another type - has a negated failure message reporting it was given another type returns false given another type - given an ActionDispatch::Response - returns true for a response with the same code - given something that acts as a Capybara::Session + has a negated failure message reporting it was given another type + given an ActionDispatch::TestResponse returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - given an ActionDispatch::TestResponse + given an ActionDispatch::Response returns true for a response with the same code - http status :success + given something that acts as a Capybara::Session + returns true for a response with the same code + behaves like status code matcher + has a negated failure message reporting the expected and actual status codes + describes behaves like status code matcher + has a failure message reporting the expected and actual status codes + matching a response + returns false for a response with a different code + returns true for a response with code + http status :error behaves like does not use deprecated methods for Rails 5.2+ does not use deprecated method for Rails >= 5.2 - with a numeric status code - describes responding with the numeric status code - has a failure message reporting the expected and actual status codes - has a negated failure message reporting the expected status code + with deprecated rack status codes + supports the original names + with general status code group :success behaves like supports different response instances + returns false given another type has a negated failure message reporting it was given another type has a failure message reporting it was given another type - returns false given another type - given something that acts as a Capybara::Session + given an ActionDispatch::TestResponse returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code - given an ActionDispatch::TestResponse - returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - matching a response - returns true for a response with the same code - returns false for a response with a different code - http status :successful + given something that acts as a Capybara::Session + returns true for a response with the same code + behaves like status code matcher + has a failure message reporting the expected and actual status codes + has a negated failure message reporting the expected and actual status codes + describes behaves like status code matcher + matching a response + returns true for a response with code + returns false for a response with a different code + with general status code group :successful behaves like supports different response instances - has a negated failure message reporting it was given another type - returns false given another type has a failure message reporting it was given another type + returns false given another type + has a negated failure message reporting it was given another type given an ActionDispatch::TestResponse returns true for a response with the same code - given a Rack::MockResponse - returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code + given a Rack::MockResponse + returns true for a response with the same code + behaves like status code matcher + describes behaves like status code matcher + has a failure message reporting the expected and actual status codes + has a negated failure message reporting the expected and actual status codes + matching a response + returns true for a response with code + returns false for a response with a different code with a nil status raises an ArgumentError http status :missing behaves like does not use deprecated methods for Rails 5.2+ does not use deprecated method for Rails >= 5.2 - http status :not_found + with general status code group :missing behaves like supports different response instances - has a failure message reporting it was given another type has a negated failure message reporting it was given another type + has a failure message reporting it was given another type returns false given another type - given an ActionDispatch::TestResponse - returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code - given a Rack::MockResponse + given an ActionDispatch::TestResponse returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - with general status code group :server_error - behaves like supports different response instances - has a negated failure message reporting it was given another type - returns false given another type - has a failure message reporting it was given another type - given an ActionDispatch::Response - returns true for a response with the same code - given an ActionDispatch::TestResponse - returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - given something that acts as a Capybara::Session - returns true for a response with the same code behaves like status code matcher - has a negated failure message reporting the expected and actual status codes - describes behaves like status code matcher has a failure message reporting the expected and actual status codes - matching a response - returns true for a response with code - returns false for a response with a different code - with general status code group :success - behaves like status code matcher - has a negated failure message reporting the expected and actual status codes describes behaves like status code matcher - has a failure message reporting the expected and actual status codes + has a negated failure message reporting the expected and actual status codes matching a response - returns false for a response with a different code returns true for a response with code + returns false for a response with a different code + http status :server_error behaves like supports different response instances returns false given another type - has a failure message reporting it was given another type has a negated failure message reporting it was given another type + has a failure message reporting it was given another type + given something that acts as a Capybara::Session + returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code - given something that acts as a Capybara::Session + given an ActionDispatch::Response returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code + http status :success + behaves like does not use deprecated methods for Rails 5.2+ + does not use deprecated method for Rails >= 5.2 + with a symbolic status + has a negated failure message reporting the expected status code + describes responding by the symbolic and associated numeric status code + has a failure message reporting the expected and actual statuses + raises an ArgumentError + matching a response + returns false for a response with a different code + returns true for a response with the equivalent code + behaves like supports different response instances + returns false given another type + has a negated failure message reporting it was given another type + has a failure message reporting it was given another type + given an ActionDispatch::TestResponse + returns true for a response with the same code + given a Rack::MockResponse + returns true for a response with the same code + given something that acts as a Capybara::Session + returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code - with general status code group :successful + with general status code group :redirect behaves like supports different response instances + returns false given another type has a failure message reporting it was given another type has a negated failure message reporting it was given another type - returns false given another type - given a Rack::MockResponse - returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code + given a Rack::MockResponse + returns true for a response with the same code behaves like status code matcher + has a negated failure message reporting the expected and actual status codes has a failure message reporting the expected and actual status codes describes behaves like status code matcher - has a negated failure message reporting the expected and actual status codes matching a response - returns false for a response with a different code returns true for a response with code - with general status code group :missing + returns false for a response with a different code + with general status code group :error behaves like status code matcher has a negated failure message reporting the expected and actual status codes - has a failure message reporting the expected and actual status codes describes behaves like status code matcher + has a failure message reporting the expected and actual status codes matching a response returns false for a response with a different code returns true for a response with code behaves like supports different response instances - returns false given another type - has a negated failure message reporting it was given another type has a failure message reporting it was given another type - given an ActionDispatch::Response + has a negated failure message reporting it was given another type + returns false given another type + given a Rack::MockResponse returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - given a Rack::MockResponse + given an ActionDispatch::Response returns true for a response with the same code - with general status code group :not_found + http status :successful behaves like supports different response instances has a negated failure message reporting it was given another type has a failure message reporting it was given another type returns false given another type + given a Rack::MockResponse + returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code - given a Rack::MockResponse - returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - behaves like status code matcher - has a failure message reporting the expected and actual status codes - has a negated failure message reporting the expected and actual status codes - describes behaves like status code matcher - matching a response - returns true for a response with code - returns false for a response with a different code -RSpec::Rails::ViewRendering - when render_views? is false - supports manipulating view paths - supports manipulating view paths with resolvers - supports manipulating view paths with arrays - with empty template resolver - works with strings - works with custom resolvers - #render_views - propagates to examples in nested groups properly - in a nested group - leaves the parent group as/is - overrides the value inherited from the parent group - passes override to children - with no args - tells examples to render views - with false - tells examples not to render views - with true - tells examples to render views - with true - tells examples to render views - with false - overrides the global config if render_views is enabled there - tells examples not to render views - with no args - tells examples to render views - default - ActionController::Base - does not render views in a nested group - does not render views - ActionController::Metal - renders views +RSpec::Rails::MinitestLifecycleAdapter + allows let variables named 'send' + invokes minitest lifecycle hooks at the appropriate times -have_broadcasted_to matchers - have_broadcasted_to - passes with :twice count - passes with provided data matchers - throws descriptive error when no test adapter set - counts only messages sent in block - passes with default messages count (exactly one) - fails when negated and message is sent - passes with at_most count when sent messages are under limit - passes with provided data - passes with provided data matchers with anything - fails with with block with incorrect data - fails when message is not sent - generates failure message with at least hint - generates failure message when data not match - fails when too many messages broadcast - passes when using alias - passes with :once count - reports correct number in fail error message - passes when using symbol target - generates failure message with at most hint - passes with :thrice count - passes with multiple streams - passes when negated - passes with at_least count when sent messages are over limit - raises ArgumentError when no Proc passed to expect - when object is passed as first argument - when channel is present - passes - when channel can't be inferred - raises exception +ActiveModel support + with partial double verification disabled + allows you to stub instances of `ActiveModel` + allows you to stub `ActiveModel` + with partial double verification enabled + allows you to stub `ActiveModel` + allows you to stub instances of `ActiveModel` + +redirect_to + with should_not + when assert_redirected_to fails + passes + when fails due to some other exception + raises that exception + when assert_redirected_to passes + fails with custom failure message + with should + when assert_redirected_to passes + passes + when assert_redirected_to fails + uses failure message from assert_redirected_to + when fails due to some other exception + raises that exception RSpec::Rails::ViewSpecMethods - .remove_extra_params_accessors_from - when accessors are not defined - does nothing - when accessors are defined - removes them .add_extra_params_accessors_to when accessors are not yet defined adds them as instance methods @@ -1780,864 +2018,662 @@ raises an error when a user tries to mutate it when accessors are already defined does not redefine them + .remove_extra_params_accessors_from + when accessors are not defined + does nothing + when accessors are defined + removes them -be_valid matcher - does not include the validation context if not provided - includes the error messages for simple implementations of error messages - includes the validation context if provided - uses a custom failure message if provided - includes a brief error message when error message is wrong arity - includes a failure message for the negative case - includes a brief error message for the simplest implementation of validity - includes the error messages in the failure message - -RSpec::Rails::RoutingExampleGroup - named routes - delegates them to the route_set - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :routing` - for an example group defined in a file in the .\spec\routing\ directory - includes itself in the example group - applies configured `before(:context)` hooks with `type: :routing` metadata - tags groups in that directory with `type: :routing` - allows users to override the type - for an example group defined in a file in the ./spec/routing/ directory - includes itself in the example group - tags groups in that directory with `type: :routing` - applies configured `before(:context)` hooks with `type: :routing` metadata - allows users to override the type - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :routing` - for an example group defined in a file in the ./spec/routing/ directory - does not tag groups in that directory with `type: :routing` - does not include itself in the example group - for an example group defined in a file in the .\spec\routing\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :routing` - -RSpec::Rails::MailboxExampleGroup - #have_been_delivered - raises on undelivered mail - does not raise otherwise - #process - sends mail to the mailbox - #have_bounced - raises on unbounced mail - does not raise otherwise - #have_failed - raises on unfailed mail - does not raise otherwise - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :mailbox` - for an example group defined in a file in the ./spec/mailboxes/ directory - does not tag groups in that directory with `type: :mailbox` - does not include itself in the example group - for an example group defined in a file in the .\spec\mailboxes\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :mailbox` - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :mailbox` - for an example group defined in a file in the .\spec\mailboxes\ directory - includes itself in the example group - tags groups in that directory with `type: :mailbox` - applies configured `before(:context)` hooks with `type: :mailbox` metadata - allows users to override the type - for an example group defined in a file in the ./spec/mailboxes/ directory - applies configured `before(:context)` hooks with `type: :mailbox` metadata - allows users to override the type - tags groups in that directory with `type: :mailbox` - includes itself in the example group - -RSpec::Rails::FixtureSupport - handles namespaced fixtures - with use_transactional_tests set to false - does not wrap the test in a transaction - with use_transactional_fixtures set to false - still supports fixture_path/fixture_paths - with use_transactional_tests set to true - works with #uses_transaction helper - -RSpec::Rails::FixtureFileUploadSupport - with fixture path set in config - resolves fixture file - resolves supports `Pathname` objects - with fixture path not set - resolves fixture using relative path - with fixture path set in spec - resolves fixture file +send_email + fails with a clear message for negated version + checks email sending by all params together + fails for multiple matches + fails with a clear message + with to_not + fails with a clear message when no emails were sent + checks email sending by no params + with compound matching + works when both matchings pass + works when first matching fails + works when second matching fails + with a custom negated version defined + fails with a clear message + works with a negated version + with a compound negated version + works when both matchings pass + works when first matching fails + works when second matching fails -HaveEnqueuedMail matchers - have_enqueued_mail - passes when a mailer method is called with deliver_later - passes when using the enqueue_email alias - matches based on mailer class and method name - fails when negated and mail is enqueued - accepts composable matchers as an at date - passes with at_most when enqueued emails are under the limit - counts only emails enqueued in the block - passes when negated with only mailer arguments - passes when deliver_later is called with a queue argument - passes when given 0 arguments - generates a failure message with arguments - ensure that the right mailer is enqueued - passes for mailer methods that accept arguments when the provided argument matcher is not used - passes with :thrice count - passes when only given mailer argument - passes with :twice count - generates a failure message when given only mailer argument - passes for mailer methods with default arguments - passes multiple arguments to with block - fails when too many emails are enqueued - generates a failure message with on_queue - passes with provided argument matchers - generates a failure message +have_broadcasted_to matchers + have_broadcasted_to + passes with at_least count when sent messages are over limit + generates failure message with at most hint + fails when message is not sent + passes when negated + passes with at_most count when sent messages are under limit + passes when using alias throws descriptive error when no test adapter set - passes with multiple emails - passes when using the enqueue_mail alias - passes when negated with 0 arguments - passes with at_least when enqueued emails are over the limit - generates a failure message with unmatching enqueued mail jobs - generates a failure message when given 0 argument + reports correct number in fail error message + passes when using symbol target + counts only messages sent in block + passes with :twice count + passes with provided data passes with :once count + fails when too many messages broadcast fails with with block with incorrect data - passes when deliver_later is called with a wait_until argument - passes when negated - generates a failure message with at most hint - passes when using the have_enqueued_email alias - only calls with block if other conditions are met - generates a failure message with at - generates a failure message with at least hint - when parameterized - passes when mailer is parameterized - passes when mixing parameterized and non-parameterized emails - passes with provided argument matchers - mailer job is unified - matches arguments when mailer has only args - passes with provided argument matchers - passes when given a global id serialized argument - passes when using a mailer with `delivery_job` set to a sub class of `ActionMailer::DeliveryJob` - passes when mixing parameterized and non-parameterized emails - passes when mailer is parameterized - -ActionMailbox matchers - receive_inbound_email - fails when negated when it receives inbound email - passes when it receives inbound email - passes when negated when it doesn't receive inbound email - fails when it doesn't receive inbound email - -RSpec::Rails::FeatureExampleGroup - includes Rails route helpers - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :feature` - for an example group defined in a file in the .\spec\features\ directory - applies configured `before(:context)` hooks with `type: :feature` metadata - allows users to override the type - tags groups in that directory with `type: :feature` - includes itself in the example group - for an example group defined in a file in the ./spec/features/ directory - applies configured `before(:context)` hooks with `type: :feature` metadata - includes itself in the example group - allows users to override the type - tags groups in that directory with `type: :feature` - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :feature` - for an example group defined in a file in the ./spec/features/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :feature` - for an example group defined in a file in the .\spec\features\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :feature` - #visit - raises an error informing about missing Capybara - is resistant to load order errors - when nested inside a request example group - includes Rails route helpers - -ActiveModel support - with partial double verification disabled - allows you to stub instances of `ActiveModel` - allows you to stub `ActiveModel` - with partial double verification enabled - allows you to stub `ActiveModel` - allows you to stub instances of `ActiveModel` - -be_new_record - a persisted record - fails - fails with custom failure message - a new record - passes - fails with custom failure message - -be_routable - provides a description - with should_not - fails if routes recognize the path - passes if routes do not recognize the path - with should - passes if routes recognize the path - fails if routes do not recognize the path + passes with default messages count (exactly one) + generates failure message when data not match + raises ArgumentError when no Proc passed to expect + passes with provided data matchers + passes with :thrice count + passes with provided data matchers with anything + fails when negated and message is sent + passes with multiple streams + generates failure message with at least hint + when object is passed as first argument + when channel is present + passes + when channel can't be inferred + raises exception -should have_xxx - works with ActiveRecord::Associations::CollectionProxy +Configuration + metadata `type: :routing` sets up routing example groups + metadata `type: :view` sets up view example groups + metadata `type: :feature` sets up feature example groups + metadata `type: :controller` sets up controller example groups + metadata `type: :model` sets up model example groups + metadata `type: :request` sets up request example groups + has a default #file_fixture_path of 'spec/fixtures/files' + adds 'lib/rspec/rails' to the backtrace exclusions + metadata `type: :mailer` sets up mailer example groups + adds 'vendor/' to the backtrace exclusions + #filter_rails_from_backtrace! adds exclusion patterns for rails gems + metadata `type: :helper` sets up helper example groups + fixture support is included with metadata `:use_fixtures` + #infer_spec_type_from_file_location! + sets the type to `:controller` for file path `spec/controllers` + sets the type to `:request` for file path `spec/integration` + sets the type to `:feature` for file path `spec/features` + sets the type to `:model` for file path `spec/models` + sets the type to `:helper` for file path `spec/helpers` + sets the type to `:routing` for file path `spec/routing` + sets the type to `:mailer` for file path `spec/mailers` + sets the type to `:view` for file path `spec/views` + sets the type to `:request` for file path `spec/api` + sets the type to `:request` for file path `spec/requests` + adds settings + `#use_transactional_examples` is an alias for `use_transactional_fixtures` + `#rendering_views` is `nil` by default + `#use_instantiated_fixtures?` is `false` by default + `#global_fixtures?` is `false` by default + `#fixture_path` is `nil` by default + `#rendering_views?` is `false` by default + `#use_transactional_fixtures?` is `false` by default + `#infer_base_class_for_anonymous_controllers?` is `true` by default + `#use_transactional_fixtures?` is `false` by default + `#fixture_path?` is `false` by default + `#use_instantiated_fixtures?` is `false` by default + `#global_fixtures?` is `false` by default + `#render_views?` is false by default + `#use_transactional_fixtures` is `nil` by default + `#use_instantiated_fixtures` is `nil` by default + `#infer_base_class_for_anonymous_controllers` is `true` by default + `#rendering_views?` is `false` by default + `#global_fixtures` is `nil` by default + `#fixture_path?` is `false` by default + `#render_views` sets `render_views?` to `true` + `#infer_base_class_for_anonymous_controllers?` is `true` by default + `#infer_base_class_for_anonymous_controllers=` + sets `infer_base_class_for_anonymous_controllers` to the provided value + changes `infer_base_class_for_anonymous_controllers?` to the true for a truthy value + `#rendering_views=` + changes `rendering_views?` to the true for a truthy value + sets `rendering_views` to the provided value + `#fixture_path=` + changes `fixture_path?` to the true for a truthy value + sets `fixture_path` to the provided value + `#render_views=` + sets `render_views?` to the truthiness of the provided value + `#use_transactional_fixtures=` + changes `use_transactional_fixtures?` to the true for a truthy value + sets `use_transactional_fixtures` to the provided value + `#use_instantiated_fixtures=` + changes `use_instantiated_fixtures?` to the true for a truthy value + sets `use_instantiated_fixtures` to the provided value + `#global_fixtures=` + changes `global_fixtures?` to the true for a truthy value + sets `global_fixtures` to the provided value + clears ActionMailer::Base::Deliveries after each example + only has deliveries from this test (e.g. from email_2@example.com) (PENDING: Temporarily skipped with xit) + only has deliveries from this test (e.g. from email@example.com) (PENDING: Temporarily skipped with xit) RSpec::Rails::ChannelExampleGroup behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :channel` - for an example group defined in a file in the .\spec\channels\ directory - does not tag groups in that directory with `type: :channel` - does not include itself in the example group - for an example group defined in a file in the ./spec/channels/ directory - does not tag groups in that directory with `type: :channel` - does not include itself in the example group when `infer_spec_type_from_file_location!` is configured includes itself in example groups tagged with `type: :channel` for an example group defined in a file in the .\spec\channels\ directory includes itself in the example group - tags groups in that directory with `type: :channel` allows users to override the type applies configured `before(:context)` hooks with `type: :channel` metadata + tags groups in that directory with `type: :channel` for an example group defined in a file in the ./spec/channels/ directory - includes itself in the example group - allows users to override the type tags groups in that directory with `type: :channel` - applies configured `before(:context)` hooks with `type: :channel` metadata - -RSpec::Rails::JobExampleGroup - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :job` - for an example group defined in a file in the .\spec\jobs\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :job` - for an example group defined in a file in the ./spec/jobs/ directory - does not tag groups in that directory with `type: :job` - does not include itself in the example group - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :job` - for an example group defined in a file in the ./spec/jobs/ directory - tags groups in that directory with `type: :job` includes itself in the example group - applies configured `before(:context)` hooks with `type: :job` metadata allows users to override the type - for an example group defined in a file in the .\spec\jobs\ directory - applies configured `before(:context)` hooks with `type: :job` metadata - tags groups in that directory with `type: :job` - includes itself in the example group - allows users to override the type - -render_template - given a hash - delegates to assert_template - with should - when assert_template fails - uses failure message from assert_template - when assert_template passes - passes - when fails due to some other exception - raises that exception - given a symbol - converts to_s and delegates to assert_template - given a string - delegates to assert_template - with should_not - when assert_template passes - fails with custom failure message - when fails with a redirect - gives informative error message - with a badly formatted error message - falls back to something informative - when fails due to some other exception - raises that exception - when assert_template fails - passes - -RSpec::Rails::RequestExampleGroup - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion + applies configured `before(:context)` hooks with `type: :channel` metadata when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :request` - for an example group defined in a file in the ./spec/api/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the ./spec/requests/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the ./spec/integration/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the .\spec\api\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the .\spec\integration\ directory - does not tag groups in that directory with `type: :request` + includes itself in example groups tagged with `type: :channel` + for an example group defined in a file in the .\spec\channels\ directory + does not tag groups in that directory with `type: :channel` does not include itself in the example group - for an example group defined in a file in the .\spec\requests\ directory - does not tag groups in that directory with `type: :request` + for an example group defined in a file in the ./spec/channels/ directory + does not tag groups in that directory with `type: :channel` does not include itself in the example group - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :request` - for an example group defined in a file in the ./spec/api/ directory - allows users to override the type - applies configured `before(:context)` hooks with `type: :request` metadata - tags groups in that directory with `type: :request` - includes itself in the example group - for an example group defined in a file in the ./spec/integration/ directory - allows users to override the type - includes itself in the example group - tags groups in that directory with `type: :request` - applies configured `before(:context)` hooks with `type: :request` metadata - for an example group defined in a file in the .\spec\requests\ directory - allows users to override the type - tags groups in that directory with `type: :request` - applies configured `before(:context)` hooks with `type: :request` metadata - includes itself in the example group - for an example group defined in a file in the .\spec\integration\ directory - applies configured `before(:context)` hooks with `type: :request` metadata - includes itself in the example group - allows users to override the type - tags groups in that directory with `type: :request` - for an example group defined in a file in the ./spec/requests/ directory - tags groups in that directory with `type: :request` - applies configured `before(:context)` hooks with `type: :request` metadata - includes itself in the example group - allows users to override the type - for an example group defined in a file in the .\spec\api\ directory - includes itself in the example group - applies configured `before(:context)` hooks with `type: :request` metadata - tags groups in that directory with `type: :request` - allows users to override the type -ActiveRecord support - with partial double verification disabled - allows you to stub abstract classes - allows you to stub `ActiveRecord::Base` - with partial double verification enabled - allows you to stub abstract classes - allows you to stub `ActiveRecord::Base` - -route_to - delegates to assert_recognizes - provides a description - uses failure message from assert_recognizes - with should - when an exception is raised - raises that exception - when assert_recognizes fails with a routing error - fails with message from assert_recognizes - when assert_recognizes passes - passes - when assert_recognizes fails with an assertion failure - fails with message from assert_recognizes - with shortcut syntax - routes without extra options - routes with multiple query parameters - routes with extra options - routes with one query parameter - routes with nested query parameters - with should_not - when assert_recognizes fails with an assertion failure - passes - when assert_recognizes passes - fails with custom message - when an exception is raised - raises that exception - when assert_recognizes fails with a routing error - passes +RSpec::Rails::HelperExampleGroup::ClassMethods + determine_default_helper_class + the described is a module + returns the module + the described is a class + returns nil RSpec::Rails::MinitestAssertionAdapter - does not leak TestUnit specific methods into the AssertionDelegator - exposes assert_in_epsilon to host examples - exposes refute_in_delta to host examples - exposes assert_output to host examples - exposes refute_includes to host examples - exposes flunk to host examples - exposes assert_in_delta to host examples - exposes assert_send to host examples - exposes assert_instance_of to host examples - exposes assert to host examples - does not expose internal methods of Minitest - exposes refute_match to host examples + exposes refute_same to host examples + exposes refute_in_epsilon to host examples exposes refute to host examples - exposes assert_pattern to host examples - exposes assert_empty to host examples + exposes refute_instance_of to host examples exposes assert_silent to host examples - exposes refute_respond_to to host examples - exposes assert_match to host examples - exposes refute_nil to host examples - exposes assert_nil to host examples does not expose Minitest's message method - exposes assert_throws to host examples - exposes assert_path_exists to host examples - exposes refute_same to host examples - exposes refute_in_epsilon to host examples - exposes refute_operator to host examples - exposes assert_operator to host examples + exposes assert_same to host examples + exposes assert_nil to host examples + exposes refute_respond_to to host examples + exposes refute_empty to host examples + exposes assert_empty to host examples + exposes assert_includes to host examples + exposes refute_kind_of to host examples exposes refute_path_exists to host examples - exposes assert_equal to host examples + exposes assert_in_epsilon to host examples + exposes refute_predicate to host examples + exposes flunk to host examples exposes assert_predicate to host examples - exposes refute_pattern to host examples exposes assert_kind_of to host examples - exposes refute_predicate to host examples - exposes assert_same to host examples - exposes assert_respond_to to host examples - exposes refute_kind_of to host examples - exposes refute_empty to host examples + exposes assert_pattern to host examples + exposes assert_path_exists to host examples + does not leak TestUnit specific methods into the AssertionDelegator + does not expose internal methods of Minitest + exposes refute_pattern to host examples + exposes assert_throws to host examples + exposes assert_operator to host examples + exposes refute_match to host examples exposes refute_equal to host examples + exposes assert_send to host examples + exposes assert_output to host examples + exposes assert_respond_to to host examples + exposes assert_equal to host examples + exposes refute_operator to host examples + exposes refute_in_delta to host examples + exposes refute_nil to host examples + exposes assert_instance_of to host examples + exposes assert to host examples + exposes assert_match to host examples exposes assert_raises to host examples - exposes assert_includes to host examples - exposes refute_instance_of to host examples + exposes assert_in_delta to host examples + exposes refute_includes to host examples RSpec::Rails::AssertionDelegator provides a module that delegates assertion methods to an isolated class - delegates back to the including instance for methods the assertion module requires does not delegate method_missing - -send_email - fails for multiple matches - checks email sending by no params - fails with a clear message - with to_not - fails with a clear message for negated version - checks email sending by all params together - fails with a clear message when no emails were sent - with compound matching - works when second matching fails - works when both matchings pass - works when first matching fails - with a custom negated version defined - works with a negated version - fails with a clear message - with a compound negated version - works when first matching fails - works when second matching fails - works when both matchings pass - -redirect_to - with should_not - when assert_redirected_to passes - fails with custom failure message - when assert_redirected_to fails - passes - when fails due to some other exception - raises that exception - with should - when assert_redirected_to fails - uses failure message from assert_redirected_to - when fails due to some other exception - raises that exception - when assert_redirected_to passes - passes - -RSpec::Rails::ViewExampleGroup - routes helpers collides with asset helpers - uses routes helpers - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :view` - for an example group defined in a file in the ./spec/views/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :view` - for an example group defined in a file in the .\spec\views\ directory - does not tag groups in that directory with `type: :view` - does not include itself in the example group - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :view` - for an example group defined in a file in the .\spec\views\ directory - includes itself in the example group - applies configured `before(:context)` hooks with `type: :view` metadata - allows users to override the type - tags groups in that directory with `type: :view` - for an example group defined in a file in the ./spec/views/ directory - allows users to override the type - applies configured `before(:context)` hooks with `type: :view` metadata - includes itself in the example group - tags groups in that directory with `type: :view` - #params - delegates to the controller - automatic inclusion of helpers - includes the namespaced helper with the same name - includes the helper with the same name - operates normally when no helper with the same name exists - operates normally when the view has no path and there is a Helper class defined - no application helper exists - operates normally - application helper exists - includes the application helper - #stub_template - caches FixtureResolver instances between example groups - prepends an ActionView::FixtureResolver to the view path - caches FixtureResolver instances between examples - #template - is deprecated - delegates to #view - #_controller_path - with a nested _default_file_to_render - it returns the directory path - with a common _default_file_to_render - it returns the directory - #render - given no input - converts the filename with variant into render options - converts the filename components into render options - sends render(:template => (described file)) to the view - converts the filename without format into render options - given a hash - sends the hash as the first arg to render - given a string - sends string as the first arg to render - #view - is accessible to configuration-level hooks - delegates to _view + delegates back to the including instance for methods the assertion module requires ActiveJob matchers - have_been_performed - fails when job is not performed - passes when negated - counts all performed jobs - passes with default jobs count (exactly one) have_performed_job - passes with :thrice count - throws descriptive error when no test adapter set - raises ArgumentError when no Proc passed to expect + passes with provided arguments + passes with default jobs count (exactly one) + reports correct number in fail error message + passes when negated + passes multiple arguments to with block + generates failure message with at least hint + passes with :twice count + fails when too many jobs performed + fails when negated and job is performed passes with provided queue name as string - counts only jobs performed in block passes with provided arguments containing global id object + passes with :thrice count + passes with provided queue name as symbol passes with at_most count when performed jobs are under limit - passes with :twice count - passes when negated - reports correct number in fail error message passes with at_least count when performed jobs are over limit - only calls with block if other conditions are met - passes with multiple jobs - generates failure message with at most hint - passes with provided queue name as symbol - passes with default jobs count (exactly one) - passes with :once count fails with with block with incorrect data - fails when too many jobs performed - fails when negated and job is performed generates failure message with all provided options - passes multiple arguments to with block - passes with provided at date - passes deserialized arguments to with block - passes with provided arguments - passes with job name fails when job is not performed - generates failure message with at least hint + raises ArgumentError when no Proc passed to expect + passes with job name + passes with provided at date + throws descriptive error when no test adapter set passes with provided argument matchers + counts only jobs performed in block + passes with multiple jobs + passes with :once count + generates failure message with at most hint + passes deserialized arguments to with block + only calls with block if other conditions are met have_been_enqueued + counts all enqueued jobs passes with default jobs count (exactly one) - passes when negated fails when job is not enqueued + passes when negated fails when negated and several jobs enqueued accepts composable matchers as an at date - counts all enqueued jobs - Active Job test helpers - does not raise that "assert_nothing_raised" is undefined have_enqueued_job - passes with provided arguments + passes with provided queue name as symbol + warns when time offsets are inprecise + counts only jobs enqueued in block + passes deserialized arguments to with block passes with :once count - passes with job name - fails when job is not enqueued - generates failure message with at most hint - passes when negated + has an enqueued job when providing at and there is no wait + passes with default jobs count (exactly one) + passes with :twice count + passes with provided arguments containing global id object reports correct number in fail error message - counts only jobs enqueued in block - passes with provided at time - passes with at_most count when enqueued jobs are under limit - passes multiple arguments to with block - generates failure message with at least hint - passes with Time - generates failure message with all provided options - ignores undeserializable arguments + fails when job is not enqueued passes with provided at date has an enqueued job when providing at of :no_wait and there is no wait - fails with with block with incorrect data - warns when time offsets are inprecise - passes with provided queue name as string - passes with provided arguments containing global id object + passes with job name + passes multiple arguments to with block + passes when using alias + passes with provided at time fails when too many jobs enqueued - passes with provided argument matchers + fails when negated and several jobs enqueued + works with time offsets + fails with with block with incorrect data + passes with Time passes with :thrice count - accepts composable matchers as an at date + ignores undeserializable arguments + generates failure message with at least hint + does not have an enqueued job when providing at of :no_wait and there is a wait has an enqueued job when not providing at and there is a wait - throws descriptive error when no test adapter set + passes with at_least count when enqueued jobs are over limit + passes with at_most count when enqueued jobs are under limit fails when negated and job is enqueued - passes with provided queue name as symbol - passes with default jobs count (exactly one) - passes when using alias - passes with multiple jobs - passes with :twice count - only calls with block if other conditions are met - passes deserialized arguments to with block + passes with provided argument matchers + passes with provided arguments raises ArgumentError when no Proc passed to expect - does not have an enqueued job when providing at of :no_wait and there is a wait - works with time offsets + passes with provided queue name as string + only calls with block if other conditions are met + generates failure message with all provided options + passes when negated + passes with multiple jobs passes with ActiveSupport::TimeWithZone - fails when negated and several jobs enqueued - passes with at_least count when enqueued jobs are over limit - has an enqueued job when providing at and there is no wait - when previously enqueued jobs were performed - counts newly enqueued jobs + generates failure message with at most hint + throws descriptive error when no test adapter set + accepts composable matchers as an at date when job is retried passes with reenqueued job - -RSpec::Rails::ModelExampleGroup - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :model` - for an example group defined in a file in the ./spec/models/ directory - does not tag groups in that directory with `type: :model` - does not include itself in the example group - for an example group defined in a file in the .\spec\models\ directory - does not tag groups in that directory with `type: :model` - does not include itself in the example group - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :model` - for an example group defined in a file in the .\spec\models\ directory - tags groups in that directory with `type: :model` - allows users to override the type - applies configured `before(:context)` hooks with `type: :model` metadata - includes itself in the example group - for an example group defined in a file in the ./spec/models/ directory - applies configured `before(:context)` hooks with `type: :model` metadata - allows users to override the type - includes itself in the example group - tags groups in that directory with `type: :model` + when previously enqueued jobs were performed + counts newly enqueued jobs + Active Job test helpers + does not raise that "assert_nothing_raised" is undefined + have_been_performed + passes when negated + passes with default jobs count (exactly one) + fails when job is not performed + counts all performed jobs have_rendered - given a hash - delegates to assert_template - with should - when fails due to some other exception - raises that exception + with should_not when assert_template fails - uses failure message from assert_template - when assert_template passes passes - given a string - delegates to assert_template - given a symbol - converts to_s and delegates to assert_template - with should_not when assert_template passes fails with custom failure message - when assert_template fails - passes - when fails due to some other exception - raises that exception when fails with a redirect gives informative error message with a badly formatted error message falls back to something informative + when fails due to some other exception + raises that exception + given a hash + delegates to assert_template + given a symbol + converts to_s and delegates to assert_template + given a string + delegates to assert_template + with should + when assert_template fails + uses failure message from assert_template + when fails due to some other exception + raises that exception + when assert_template passes + passes -RSpec::Rails::SetupAndTeardownAdapter - .setup - registers prepend_before hooks for the Rails' setup methods - registers teardown hooks in the order setup is received - registers before hooks in the order setup is received +should have_xxx + works with ActiveRecord::Associations::CollectionProxy -have_stream matchers - have_stream_for - fails with message - raises when no subscription started - passes - raises ArgumentError when no subscription passed to expect - with negated form - passes - fails with message - have_stream_from - raises when no subscription started - raises ArgumentError when no subscription passed to expect - passes - fails with message - with composable matcher - fails with message - passes - with negated form - passes - fails with message - have_streams - does not allow usage - raises when no subscription started - with negated form - passes with negated form - raises when no subscription started - raises ArgumentError when no subscription passed to expect - fails with message +HaveEnqueuedMail matchers + have_enqueued_mail + accepts composable matchers as an at date + passes when using the enqueue_email alias + counts only emails enqueued in the block + fails with with block with incorrect data + passes when using the enqueue_mail alias + passes when using the have_enqueued_email alias + generates a failure message with at least hint + passes with :once count + passes for mailer methods with default arguments + generates a failure message with at + passes when negated with only mailer arguments + passes with provided argument matchers + generates a failure message with at most hint + generates a failure message + generates a failure message with arguments + fails when negated and mail is enqueued + generates a failure message with on_queue + passes when a mailer method is called with deliver_later + passes when negated + passes for mailer methods that accept arguments when the provided argument matcher is not used + passes when negated with 0 arguments + passes with :twice count + generates a failure message when given 0 argument + passes with at_most when enqueued emails are under the limit + passes multiple arguments to with block + ensure that the right mailer is enqueued + generates a failure message when given only mailer argument + fails when too many emails are enqueued + matches based on mailer class and method name + only calls with block if other conditions are met + throws descriptive error when no test adapter set + passes when deliver_later is called with a wait_until argument + generates a failure message with unmatching enqueued mail jobs + passes when deliver_later is called with a queue argument + passes when given 0 arguments + passes when only given mailer argument + passes with :thrice count + passes with at_least when enqueued emails are over the limit + passes with multiple emails + when parameterized + passes when mixing parameterized and non-parameterized emails + passes when mailer is parameterized + passes with provided argument matchers + mailer job is unified + passes when mixing parameterized and non-parameterized emails + matches arguments when mailer has only args + passes with provided argument matchers + passes when given a global id serialized argument + passes when using a mailer with `delivery_job` set to a sub class of `ActionMailer::DeliveryJob` + passes when mailer is parameterized -RSpec::Rails::ControllerExampleGroup - includes routing matchers - handles methods invoked via `method_missing` that use keywords - #controller - delegates named route helpers to the underlying controller - calls NamedRouteCollection#route_defined? when it checks that given route is defined or not - with inferred anonymous controller - defaults to inferring anonymous controller class - when infer_base_class_for_anonymous_controllers is true - infers the anonymous controller class - infers the anonymous controller class when no ApplicationController is present - when infer_base_class_for_anonymous_controllers is false - sets the anonymous controller class to ActiveController::Base when no ApplicationController is present - sets the anonymous controller class to ApplicationController - with explicit subject - uses the specified subject instead of the controller - controller name - sets name as AnonymousController if the controller is abstract - sets name as AnonymousController if it inherits outer group's anonymous controller - sets name as AnonymousController if defined as ApplicationController - sets the name as AnonymousController if it's anonymous - sets the name according to defined controller if it is not anonymous - with implicit subject - uses the controller as the subject - doesn't cause let definition priority to be changed +RSpec::Rails + has no malformed whitespace + +RSpec::Rails::ModelExampleGroup behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :controller` - for an example group defined in a file in the .\spec\controllers\ directory - does not tag groups in that directory with `type: :controller` - does not include itself in the example group - for an example group defined in a file in the ./spec/controllers/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :controller` when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :controller` - for an example group defined in a file in the ./spec/controllers/ directory - tags groups in that directory with `type: :controller` - applies configured `before(:context)` hooks with `type: :controller` metadata - includes itself in the example group + includes itself in example groups tagged with `type: :model` + for an example group defined in a file in the .\spec\models\ directory + applies configured `before(:context)` hooks with `type: :model` metadata allows users to override the type - for an example group defined in a file in the .\spec\controllers\ directory + tags groups in that directory with `type: :model` + includes itself in the example group + for an example group defined in a file in the ./spec/models/ directory + tags groups in that directory with `type: :model` allows users to override the type - tags groups in that directory with `type: :controller` - applies configured `before(:context)` hooks with `type: :controller` metadata + applies configured `before(:context)` hooks with `type: :model` metadata includes itself in the example group - #bypass_rescue - overrides the rescue_with_handler method on the controller to raise submitted error - in a namespace - controller name - sets the name as 'AnonymousController' if the controller is abstract - sets the name according to the defined controller namespace if it is not anonymous + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :model` + for an example group defined in a file in the .\spec\models\ directory + does not tag groups in that directory with `type: :model` + does not include itself in the example group + for an example group defined in a file in the ./spec/models/ directory + does not include itself in the example group + does not tag groups in that directory with `type: :model` -RSpec::Rails::SystemExampleGroup - #driver - calls :driven_by method only once - uses :selenium driver by default - sets :rack_test driver using by before_action - #after - sets the :extra_failure_lines metadata to an array of STDOUT lines - #method_name - handles long method names which include unicode characters - converts special characters to underscores - hook order - calls Capybara.reset_sessions (TestUnit after_teardown) after any after hooks +RSpec::Rails::ViewExampleGroup + #params + delegates to the controller + routes helpers collides with asset helpers + uses routes helpers + #stub_template + caches FixtureResolver instances between example groups + prepends an ActionView::FixtureResolver to the view path + caches FixtureResolver instances between examples behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :system` - for an example group defined in a file in the ./spec/system/ directory + includes itself in example groups tagged with `type: :view` + for an example group defined in a file in the ./spec/views/ directory + does not tag groups in that directory with `type: :view` does not include itself in the example group - does not tag groups in that directory with `type: :system` - for an example group defined in a file in the .\spec\system\ directory + for an example group defined in a file in the .\spec\views\ directory + does not tag groups in that directory with `type: :view` does not include itself in the example group - does not tag groups in that directory with `type: :system` when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :system` - for an example group defined in a file in the ./spec/system/ directory - tags groups in that directory with `type: :system` + includes itself in example groups tagged with `type: :view` + for an example group defined in a file in the ./spec/views/ directory + applies configured `before(:context)` hooks with `type: :view` metadata + tags groups in that directory with `type: :view` allows users to override the type includes itself in the example group - applies configured `before(:context)` hooks with `type: :system` metadata - for an example group defined in a file in the .\spec\system\ directory + for an example group defined in a file in the .\spec\views\ directory + tags groups in that directory with `type: :view` + applies configured `before(:context)` hooks with `type: :view` metadata allows users to override the type - applies configured `before(:context)` hooks with `type: :system` metadata - tags groups in that directory with `type: :system` includes itself in the example group + #_controller_path + with a nested _default_file_to_render + it returns the directory path + with a common _default_file_to_render + it returns the directory + #template + is deprecated + delegates to #view + automatic inclusion of helpers + includes the namespaced helper with the same name + operates normally when no helper with the same name exists + operates normally when the view has no path and there is a Helper class defined + includes the helper with the same name + application helper exists + includes the application helper + no application helper exists + operates normally + #view + is accessible to configuration-level hooks + delegates to _view + #render + given a hash + sends the hash as the first arg to render + given no input + converts the filename with variant into render options + sends render(:template => (described file)) to the view + converts the filename components into render options + converts the filename without format into render options + given a string + sends string as the first arg to render -RSpec::Rails::HelperExampleGroup - provides a controller_path based on the helper module's name +RSpec::Rails::SystemExampleGroup + hook order + calls Capybara.reset_sessions (TestUnit after_teardown) after any after hooks behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :helper` - for an example group defined in a file in the .\spec\helpers\ directory - tags groups in that directory with `type: :helper` + includes itself in example groups tagged with `type: :system` + for an example group defined in a file in the ./spec/system/ directory + tags groups in that directory with `type: :system` + applies configured `before(:context)` hooks with `type: :system` metadata includes itself in the example group - applies configured `before(:context)` hooks with `type: :helper` metadata - allows users to override the type - for an example group defined in a file in the ./spec/helpers/ directory - applies configured `before(:context)` hooks with `type: :helper` metadata - tags groups in that directory with `type: :helper` allows users to override the type + for an example group defined in a file in the .\spec\system\ directory + tags groups in that directory with `type: :system` includes itself in the example group + allows users to override the type + applies configured `before(:context)` hooks with `type: :system` metadata when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :helper` - for an example group defined in a file in the ./spec/helpers/ directory - does not tag groups in that directory with `type: :helper` + includes itself in example groups tagged with `type: :system` + for an example group defined in a file in the .\spec\system\ directory + does not tag groups in that directory with `type: :system` does not include itself in the example group - for an example group defined in a file in the .\spec\helpers\ directory - does not tag groups in that directory with `type: :helper` + for an example group defined in a file in the ./spec/system/ directory does not include itself in the example group - #helper - returns the instance of AV::Base provided by AV::TC::Behavior - includes ApplicationHelper + does not tag groups in that directory with `type: :system` + #method_name + handles long method names which include unicode characters + converts special characters to underscores + #driver + uses :selenium driver by default + sets :rack_test driver using by before_action + calls :driven_by method only once + #after + sets the :extra_failure_lines metadata to an array of STDOUT lines -RSpec::Rails - has no malformed whitespace +RSpec::Rails::FixtureSupport + handles namespaced fixtures + with use_transactional_tests set to true + works with #uses_transaction helper + with use_transactional_fixtures set to false + still supports fixture_path/fixture_paths + with use_transactional_tests set to false + does not wrap the test in a transaction -be_a_new matcher - new record - wrong class - fails - right class +ActiveSupport::Relation match_array matcher + fails if the scope encompasses fewer records than on the right hand side + fails if the scope encompasses more records than on the right hand side + verifies that the scope returns the records on the right hand side, regardless of order + +route_to + uses failure message from assert_recognizes + provides a description + delegates to assert_recognizes + with should_not + when assert_recognizes fails with an assertion failure passes + when assert_recognizes passes + fails with custom message + when an exception is raised + raises that exception + when assert_recognizes fails with a routing error + passes + with shortcut syntax + routes with nested query parameters + routes with one query parameter + routes without extra options + routes with multiple query parameters + routes with extra options + with should + when assert_recognizes fails with an assertion failure + fails with message from assert_recognizes + when assert_recognizes fails with a routing error + fails with message from assert_recognizes + when assert_recognizes passes + passes + when an exception is raised + raises that exception + +RSpec::Rails::FixtureFileUploadSupport + with fixture path set in config + resolves supports `Pathname` objects + resolves fixture file + with fixture path not set + resolves fixture using relative path + with fixture path set in spec + resolves fixture file + +RSpec::Rails::ViewRendering + #render_views + propagates to examples in nested groups properly + with no args + tells examples to render views + with true + tells examples to render views + in a nested group + overrides the value inherited from the parent group + leaves the parent group as/is + passes override to children + with false + tells examples not to render views + with true + tells examples to render views + with no args + tells examples to render views + with false + tells examples not to render views + overrides the global config if render_views is enabled there + default + ActionController::Base + does not render views + does not render views in a nested group + ActionController::Metal + renders views + when render_views? is false + supports manipulating view paths + supports manipulating view paths with arrays + supports manipulating view paths with resolvers + with empty template resolver + works with strings + works with custom resolvers + +be_a_new matcher #with - wrong class and existing record - one attribute value not the same - fails - no attributes same - fails - all attributes same - fails right class and new record - no attributes same - fails - one attribute value not the same - fails - all attributes same - passes with composable matchers + two attributes are composable matchers + both matchers present in actual + passes + only one matcher present in actual + fails one attribute is a composable matcher - passes fails + passes matcher is wrong type fails - two attributes are composable matchers - only one matcher present in actual - fails - both matchers present in actual - passes + one attribute value not the same + fails + all attributes same + passes one attribute same passes - existing record - right class + no attributes same + fails + wrong class and existing record + one attribute value not the same + fails + all attributes same + fails + no attributes same + fails + new record + wrong class fails + right class + passes + existing record wrong class fails + right class + fails + +RSpec::Rails::JobExampleGroup + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :job` + for an example group defined in a file in the .\spec\jobs\ directory + allows users to override the type + includes itself in the example group + tags groups in that directory with `type: :job` + applies configured `before(:context)` hooks with `type: :job` metadata + for an example group defined in a file in the ./spec/jobs/ directory + applies configured `before(:context)` hooks with `type: :job` metadata + tags groups in that directory with `type: :job` + allows users to override the type + includes itself in the example group + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :job` + for an example group defined in a file in the ./spec/jobs/ directory + does not tag groups in that directory with `type: :job` + does not include itself in the example group + for an example group defined in a file in the .\spec\jobs\ directory + does not tag groups in that directory with `type: :job` + does not include itself in the example group Pending: (Failures listed here are expected and do not affect your suite's status) @@ -2649,10 +2685,10 @@ # Temporarily skipped with xit # ./spec/rspec/rails/configuration_spec.rb:372 -Finished in 3.98 seconds (files took 2.81 seconds to load) +Finished in 5.45 seconds (files took 8.55 seconds to load) 818 examples, 0 failures, 2 pending -Randomized with seed 282 +Randomized with seed 4482 /usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner @@ -2669,125 +2705,53 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-rspec-rails-6.1.5/debian/ruby-rspec-rails/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-rspec-rails-6.1.5/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/aarch64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec ./spec/rspec/rails/active_model_spec.rb ./spec/rspec/rails/active_record_spec.rb ./spec/rspec/rails/assertion_adapter_spec.rb ./spec/rspec/rails/assertion_delegator_spec.rb ./spec/rspec/rails/configuration_spec.rb ./spec/rspec/rails/example/channel_example_group_spec.rb ./spec/rspec/rails/example/controller_example_group_spec.rb ./spec/rspec/rails/example/feature_example_group_spec.rb ./spec/rspec/rails/example/helper_example_group_spec.rb ./spec/rspec/rails/example/job_example_group_spec.rb ./spec/rspec/rails/example/mailbox_example_group_spec.rb ./spec/rspec/rails/example/model_example_group_spec.rb ./spec/rspec/rails/example/rails_example_group_spec.rb ./spec/rspec/rails/example/request_example_group_spec.rb ./spec/rspec/rails/example/routing_example_group_spec.rb ./spec/rspec/rails/example/system_example_group_spec.rb ./spec/rspec/rails/example/view_example_group_spec.rb ./spec/rspec/rails/fixture_file_upload_support_spec.rb ./spec/rspec/rails/fixture_support_spec.rb ./spec/rspec/rails/matchers/action_cable/have_broadcasted_to_spec.rb ./spec/rspec/rails/matchers/action_cable/have_stream_spec.rb ./spec/rspec/rails/matchers/action_mailbox_spec.rb ./spec/rspec/rails/matchers/active_job_spec.rb ./spec/rspec/rails/matchers/be_a_new_spec.rb ./spec/rspec/rails/matchers/be_new_record_spec.rb ./spec/rspec/rails/matchers/be_routable_spec.rb ./spec/rspec/rails/matchers/be_valid_spec.rb ./spec/rspec/rails/matchers/has_spec.rb ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb ./spec/rspec/rails/matchers/have_http_status_spec.rb ./spec/rspec/rails/matchers/have_rendered_spec.rb ./spec/rspec/rails/matchers/redirect_to_spec.rb ./spec/rspec/rails/matchers/relation_match_array_spec.rb ./spec/rspec/rails/matchers/route_to_spec.rb ./spec/rspec/rails/matchers/send_email_spec.rb ./spec/rspec/rails/minitest_lifecycle_adapter_spec.rb ./spec/rspec/rails/setup_and_teardown_adapter_spec.rb ./spec/rspec/rails/view_rendering_spec.rb ./spec/rspec/rails/view_spec_methods_spec.rb ./spec/rspec/rails_spec.rb --format documentation -Randomized with seed 24597 - -RSpec::Rails::JobExampleGroup - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :job` - for an example group defined in a file in the .\spec\jobs\ directory - tags groups in that directory with `type: :job` - includes itself in the example group - applies configured `before(:context)` hooks with `type: :job` metadata - allows users to override the type - for an example group defined in a file in the ./spec/jobs/ directory - applies configured `before(:context)` hooks with `type: :job` metadata - allows users to override the type - includes itself in the example group - tags groups in that directory with `type: :job` - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :job` - for an example group defined in a file in the .\spec\jobs\ directory - does not tag groups in that directory with `type: :job` - does not include itself in the example group - for an example group defined in a file in the ./spec/jobs/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :job` - -HaveEnqueuedMail matchers - have_enqueued_mail - generates a failure message with unmatching enqueued mail jobs - generates a failure message with on_queue - generates a failure message with at least hint - accepts composable matchers as an at date - passes with :once count - passes with :thrice count - passes when using the enqueue_mail alias - passes multiple arguments to with block - generates a failure message when given only mailer argument - passes with at_most when enqueued emails are under the limit - passes when a mailer method is called with deliver_later - passes for mailer methods that accept arguments when the provided argument matcher is not used - generates a failure message - generates a failure message with at - ensure that the right mailer is enqueued - passes with provided argument matchers - passes when negated with only mailer arguments - passes when deliver_later is called with a wait_until argument - counts only emails enqueued in the block - passes when using the enqueue_email alias - generates a failure message with at most hint - passes for mailer methods with default arguments - passes with multiple emails - passes when using the have_enqueued_email alias - passes when given 0 arguments - passes when negated - passes when only given mailer argument - passes when negated with 0 arguments - passes with at_least when enqueued emails are over the limit - fails when too many emails are enqueued - only calls with block if other conditions are met - matches based on mailer class and method name - passes when deliver_later is called with a queue argument - fails with with block with incorrect data - fails when negated and mail is enqueued - throws descriptive error when no test adapter set - generates a failure message with arguments - passes with :twice count - generates a failure message when given 0 argument - when parameterized - passes with provided argument matchers - passes when mailer is parameterized - passes when mixing parameterized and non-parameterized emails - mailer job is unified - passes when given a global id serialized argument - passes when mailer is parameterized - passes when mixing parameterized and non-parameterized emails - passes with provided argument matchers - passes when using a mailer with `delivery_job` set to a sub class of `ActionMailer::DeliveryJob` - matches arguments when mailer has only args +Randomized with seed 21472 have_http_status - http status :successful + with deprecated rack status codes + supports the original names + http status :success + behaves like does not use deprecated methods for Rails 5.2+ + does not use deprecated method for Rails >= 5.2 + with a nil status + raises an ArgumentError + with general status code group :redirect behaves like supports different response instances has a failure message reporting it was given another type - returns false given another type has a negated failure message reporting it was given another type + returns false given another type given a Rack::MockResponse returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - given an ActionDispatch::Response - returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code - with deprecated rack status codes - supports the original names - with general status code group :redirect + given an ActionDispatch::Response + returns true for a response with the same code behaves like status code matcher + has a negated failure message reporting the expected and actual status codes describes behaves like status code matcher has a failure message reporting the expected and actual status codes - has a negated failure message reporting the expected and actual status codes matching a response - returns false for a response with a different code returns true for a response with code + returns false for a response with a different code + http status :not_found behaves like supports different response instances - has a failure message reporting it was given another type has a negated failure message reporting it was given another type + has a failure message reporting it was given another type returns false given another type - given something that acts as a Capybara::Session - returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code + given something that acts as a Capybara::Session + returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - http status :error + http status :missing behaves like does not use deprecated methods for Rails 5.2+ does not use deprecated method for Rails >= 5.2 - with general status code group :success + http status :successful behaves like supports different response instances returns false given another type has a negated failure message reporting it was given another type @@ -2800,33 +2764,30 @@ returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - behaves like status code matcher - has a negated failure message reporting the expected and actual status codes - has a failure message reporting the expected and actual status codes - describes behaves like status code matcher - matching a response - returns true for a response with code - returns false for a response with a different code - http status :missing - behaves like does not use deprecated methods for Rails 5.2+ - does not use deprecated method for Rails >= 5.2 - http status :server_error + with general status code group :server_error behaves like supports different response instances - has a negated failure message reporting it was given another type has a failure message reporting it was given another type returns false given another type + has a negated failure message reporting it was given another type given an ActionDispatch::TestResponse returns true for a response with the same code + given an ActionDispatch::Response + returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - given an ActionDispatch::Response - returns true for a response with the same code - with general status code group :server_error behaves like status code matcher + has a negated failure message reporting the expected and actual status codes describes behaves like status code matcher has a failure message reporting the expected and actual status codes + matching a response + returns false for a response with a different code + returns true for a response with code + with general status code group :missing + behaves like status code matcher + has a failure message reporting the expected and actual status codes + describes behaves like status code matcher has a negated failure message reporting the expected and actual status codes matching a response returns true for a response with code @@ -2835,456 +2796,177 @@ has a negated failure message reporting it was given another type has a failure message reporting it was given another type returns false given another type - given a Rack::MockResponse + given something that acts as a Capybara::Session returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code - given something that acts as a Capybara::Session + given a Rack::MockResponse returns true for a response with the same code - with a numeric status code - has a failure message reporting the expected and actual status codes - has a negated failure message reporting the expected status code - describes responding with the numeric status code - matching a response - returns true for a response with the same code - returns false for a response with a different code + http status :server_error behaves like supports different response instances + returns false given another type has a negated failure message reporting it was given another type has a failure message reporting it was given another type - returns false given another type - given a Rack::MockResponse - returns true for a response with the same code - given an ActionDispatch::TestResponse - returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code + given a Rack::MockResponse + returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - http status :success - behaves like does not use deprecated methods for Rails 5.2+ - does not use deprecated method for Rails >= 5.2 - with a nil status - raises an ArgumentError - with general status code group :error + given an ActionDispatch::TestResponse + returns true for a response with the same code + with general status code group :successful behaves like supports different response instances has a negated failure message reporting it was given another type - returns false given another type has a failure message reporting it was given another type + returns false given another type given something that acts as a Capybara::Session returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - given an ActionDispatch::Response - returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code + given an ActionDispatch::Response + returns true for a response with the same code behaves like status code matcher - describes behaves like status code matcher has a negated failure message reporting the expected and actual status codes has a failure message reporting the expected and actual status codes + describes behaves like status code matcher matching a response returns true for a response with code returns false for a response with a different code - with a symbolic status - has a failure message reporting the expected and actual statuses - describes responding by the symbolic and associated numeric status code - has a negated failure message reporting the expected status code - raises an ArgumentError - matching a response - returns false for a response with a different code - returns true for a response with the equivalent code + with general status code group :error behaves like supports different response instances - has a failure message reporting it was given another type returns false given another type + has a failure message reporting it was given another type has a negated failure message reporting it was given another type - given an ActionDispatch::TestResponse - returns true for a response with the same code - given an ActionDispatch::Response + given a Rack::MockResponse returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - given a Rack::MockResponse + given an ActionDispatch::TestResponse + returns true for a response with the same code + given an ActionDispatch::Response returns true for a response with the same code - with general status code group :missing behaves like status code matcher + describes behaves like status code matcher has a negated failure message reporting the expected and actual status codes has a failure message reporting the expected and actual status codes - describes behaves like status code matcher matching a response returns true for a response with code returns false for a response with a different code + http status :error + behaves like does not use deprecated methods for Rails 5.2+ + does not use deprecated method for Rails >= 5.2 + with a numeric status code + has a failure message reporting the expected and actual status codes + has a negated failure message reporting the expected status code + describes responding with the numeric status code behaves like supports different response instances has a failure message reporting it was given another type has a negated failure message reporting it was given another type returns false given another type - given a Rack::MockResponse + given an ActionDispatch::Response returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code - given an ActionDispatch::Response + given a Rack::MockResponse returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code + matching a response + returns false for a response with a different code + returns true for a response with the same code with general status code group :not_found behaves like status code matcher + describes behaves like status code matcher has a negated failure message reporting the expected and actual status codes has a failure message reporting the expected and actual status codes - describes behaves like status code matcher matching a response returns true for a response with code returns false for a response with a different code behaves like supports different response instances has a failure message reporting it was given another type - returns false given another type has a negated failure message reporting it was given another type + returns false given another type given a Rack::MockResponse returns true for a response with the same code + given an ActionDispatch::Response + returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code + given something that acts as a Capybara::Session + returns true for a response with the same code + with a symbolic status + has a negated failure message reporting the expected status code + describes responding by the symbolic and associated numeric status code + raises an ArgumentError + has a failure message reporting the expected and actual statuses + behaves like supports different response instances + has a negated failure message reporting it was given another type + has a failure message reporting it was given another type + returns false given another type given an ActionDispatch::Response returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - with general status code group :successful + given a Rack::MockResponse + returns true for a response with the same code + given an ActionDispatch::TestResponse + returns true for a response with the same code + matching a response + returns false for a response with a different code + returns true for a response with the equivalent code + with general status code group :success behaves like supports different response instances - has a failure message reporting it was given another type returns false given another type has a negated failure message reporting it was given another type - given a Rack::MockResponse + has a failure message reporting it was given another type + given something that acts as a Capybara::Session returns true for a response with the same code - given an ActionDispatch::Response + given a Rack::MockResponse returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code - given something that acts as a Capybara::Session + given an ActionDispatch::Response returns true for a response with the same code behaves like status code matcher - describes behaves like status code matcher - has a failure message reporting the expected and actual status codes has a negated failure message reporting the expected and actual status codes + has a failure message reporting the expected and actual status codes + describes behaves like status code matcher matching a response returns false for a response with a different code returns true for a response with code - http status :not_found - behaves like supports different response instances - has a negated failure message reporting it was given another type - returns false given another type - has a failure message reporting it was given another type - given an ActionDispatch::Response - returns true for a response with the same code - given an ActionDispatch::TestResponse - returns true for a response with the same code - given something that acts as a Capybara::Session - returns true for a response with the same code - given a Rack::MockResponse - returns true for a response with the same code -RSpec::Rails::FeatureExampleGroup - includes Rails route helpers - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :feature` - for an example group defined in a file in the ./spec/features/ directory - includes itself in the example group - tags groups in that directory with `type: :feature` - applies configured `before(:context)` hooks with `type: :feature` metadata - allows users to override the type - for an example group defined in a file in the .\spec\features\ directory - allows users to override the type - includes itself in the example group - applies configured `before(:context)` hooks with `type: :feature` metadata - tags groups in that directory with `type: :feature` - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :feature` - for an example group defined in a file in the .\spec\features\ directory - does not tag groups in that directory with `type: :feature` - does not include itself in the example group - for an example group defined in a file in the ./spec/features/ directory - does not tag groups in that directory with `type: :feature` - does not include itself in the example group - #visit - raises an error informing about missing Capybara - is resistant to load order errors - when nested inside a request example group - includes Rails route helpers - -ActiveJob matchers - Active Job test helpers - does not raise that "assert_nothing_raised" is undefined - have_been_performed - fails when job is not performed - passes with default jobs count (exactly one) - counts all performed jobs - passes when negated - have_been_enqueued - accepts composable matchers as an at date - counts all enqueued jobs - passes with default jobs count (exactly one) - fails when job is not enqueued - passes when negated - fails when negated and several jobs enqueued - have_enqueued_job - fails when too many jobs enqueued - passes with provided queue name as string - fails when negated and several jobs enqueued - passes with provided argument matchers - passes with provided at time - passes with Time - passes with :thrice count - has an enqueued job when not providing at and there is a wait - warns when time offsets are inprecise - only calls with block if other conditions are met - ignores undeserializable arguments - passes when negated - reports correct number in fail error message - throws descriptive error when no test adapter set - has an enqueued job when providing at and there is no wait - passes with provided arguments containing global id object - does not have an enqueued job when providing at of :no_wait and there is a wait - passes with at_least count when enqueued jobs are over limit - accepts composable matchers as an at date - generates failure message with all provided options - fails with with block with incorrect data - passes with provided queue name as symbol - has an enqueued job when providing at of :no_wait and there is no wait - passes deserialized arguments to with block - passes with provided arguments - works with time offsets - generates failure message with at least hint - passes with job name - passes with multiple jobs - passes with ActiveSupport::TimeWithZone - fails when negated and job is enqueued - passes multiple arguments to with block - passes with :twice count - counts only jobs enqueued in block - passes when using alias - fails when job is not enqueued - raises ArgumentError when no Proc passed to expect - generates failure message with at most hint - passes with default jobs count (exactly one) - passes with :once count - passes with at_most count when enqueued jobs are under limit - passes with provided at date - when previously enqueued jobs were performed - counts newly enqueued jobs - when job is retried - passes with reenqueued job - have_performed_job - fails with with block with incorrect data - only calls with block if other conditions are met - passes multiple arguments to with block - throws descriptive error when no test adapter set - passes with at_least count when performed jobs are over limit - passes with job name - passes with :twice count - passes with provided queue name as symbol - passes with :once count - passes with multiple jobs - passes with at_most count when performed jobs are under limit - fails when negated and job is performed - passes with default jobs count (exactly one) - fails when job is not performed - passes with provided at date - passes deserialized arguments to with block - passes with provided arguments containing global id object - passes with provided queue name as string - generates failure message with all provided options - passes with provided arguments - reports correct number in fail error message - counts only jobs performed in block - generates failure message with at least hint - raises ArgumentError when no Proc passed to expect - fails when too many jobs performed - passes with :thrice count - passes with provided argument matchers - generates failure message with at most hint - passes when negated - -Configuration - adds 'vendor/' to the backtrace exclusions - fixture support is included with metadata `:use_fixtures` - metadata `type: :feature` sets up feature example groups - metadata `type: :helper` sets up helper example groups - metadata `type: :model` sets up model example groups - metadata `type: :request` sets up request example groups - metadata `type: :controller` sets up controller example groups - metadata `type: :view` sets up view example groups - adds 'lib/rspec/rails' to the backtrace exclusions - has a default #file_fixture_path of 'spec/fixtures/files' - #filter_rails_from_backtrace! adds exclusion patterns for rails gems - metadata `type: :routing` sets up routing example groups - metadata `type: :mailer` sets up mailer example groups - clears ActionMailer::Base::Deliveries after each example - only has deliveries from this test (e.g. from email@example.com) (PENDING: Temporarily skipped with xit) - only has deliveries from this test (e.g. from email_2@example.com) (PENDING: Temporarily skipped with xit) - adds settings - `#use_instantiated_fixtures?` is `false` by default - `#fixture_path?` is `false` by default - `#rendering_views?` is `false` by default - `#fixture_path` is `nil` by default - `#infer_base_class_for_anonymous_controllers?` is `true` by default - `#use_transactional_fixtures?` is `false` by default - `#global_fixtures` is `nil` by default - `#global_fixtures?` is `false` by default - `#use_instantiated_fixtures` is `nil` by default - `#infer_base_class_for_anonymous_controllers?` is `true` by default - `#infer_base_class_for_anonymous_controllers` is `true` by default - `#use_transactional_examples` is an alias for `use_transactional_fixtures` - `#use_transactional_fixtures` is `nil` by default - `#global_fixtures?` is `false` by default - `#rendering_views` is `nil` by default - `#use_instantiated_fixtures?` is `false` by default - `#render_views` sets `render_views?` to `true` - `#rendering_views?` is `false` by default - `#use_transactional_fixtures?` is `false` by default - `#fixture_path?` is `false` by default - `#render_views?` is false by default - `#rendering_views=` - changes `rendering_views?` to the true for a truthy value - sets `rendering_views` to the provided value - `#global_fixtures=` - sets `global_fixtures` to the provided value - changes `global_fixtures?` to the true for a truthy value - `#fixture_path=` - sets `fixture_path` to the provided value - changes `fixture_path?` to the true for a truthy value - `#use_instantiated_fixtures=` - sets `use_instantiated_fixtures` to the provided value - changes `use_instantiated_fixtures?` to the true for a truthy value - `#infer_base_class_for_anonymous_controllers=` - changes `infer_base_class_for_anonymous_controllers?` to the true for a truthy value - sets `infer_base_class_for_anonymous_controllers` to the provided value - `#use_transactional_fixtures=` - changes `use_transactional_fixtures?` to the true for a truthy value - sets `use_transactional_fixtures` to the provided value - `#render_views=` - sets `render_views?` to the truthiness of the provided value - #infer_spec_type_from_file_location! - sets the type to `:controller` for file path `spec/controllers` - sets the type to `:request` for file path `spec/requests` - sets the type to `:helper` for file path `spec/helpers` - sets the type to `:request` for file path `spec/integration` - sets the type to `:feature` for file path `spec/features` - sets the type to `:view` for file path `spec/views` - sets the type to `:routing` for file path `spec/routing` - sets the type to `:request` for file path `spec/api` - sets the type to `:mailer` for file path `spec/mailers` - sets the type to `:model` for file path `spec/models` - -RSpec::Rails::RequestExampleGroup - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :request` - for an example group defined in a file in the ./spec/integration/ directory - allows users to override the type - applies configured `before(:context)` hooks with `type: :request` metadata - includes itself in the example group - tags groups in that directory with `type: :request` - for an example group defined in a file in the .\spec\integration\ directory - applies configured `before(:context)` hooks with `type: :request` metadata - tags groups in that directory with `type: :request` - allows users to override the type - includes itself in the example group - for an example group defined in a file in the .\spec\api\ directory - tags groups in that directory with `type: :request` - includes itself in the example group - allows users to override the type - applies configured `before(:context)` hooks with `type: :request` metadata - for an example group defined in a file in the ./spec/api/ directory - includes itself in the example group - applies configured `before(:context)` hooks with `type: :request` metadata - tags groups in that directory with `type: :request` - allows users to override the type - for an example group defined in a file in the .\spec\requests\ directory - applies configured `before(:context)` hooks with `type: :request` metadata - allows users to override the type - tags groups in that directory with `type: :request` - includes itself in the example group - for an example group defined in a file in the ./spec/requests/ directory - includes itself in the example group - allows users to override the type - tags groups in that directory with `type: :request` - applies configured `before(:context)` hooks with `type: :request` metadata - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :request` - for an example group defined in a file in the ./spec/requests/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the ./spec/integration/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the ./spec/api/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the .\spec\requests\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the .\spec\integration\ directory - does not tag groups in that directory with `type: :request` - does not include itself in the example group - for an example group defined in a file in the .\spec\api\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - -have_broadcasted_to matchers - have_broadcasted_to - passes with provided data - reports correct number in fail error message - passes when using alias - passes with at_least count when sent messages are over limit - generates failure message when data not match - counts only messages sent in block - passes with :twice count - passes with default messages count (exactly one) - raises ArgumentError when no Proc passed to expect - fails when too many messages broadcast - passes with :thrice count - passes with provided data matchers with anything - passes with provided data matchers - passes when negated - throws descriptive error when no test adapter set - fails when message is not sent - fails when negated and message is sent - generates failure message with at most hint - passes when using symbol target - passes with multiple streams - passes with :once count - passes with at_most count when sent messages are under limit - fails with with block with incorrect data - generates failure message with at least hint - when object is passed as first argument - when channel is present - passes - when channel can't be inferred - raises exception - -RSpec::Rails::FixtureSupport - handles namespaced fixtures - with use_transactional_tests set to false - does not wrap the test in a transaction - with use_transactional_tests set to true - works with #uses_transaction helper - with use_transactional_fixtures set to false - still supports fixture_path/fixture_paths +should have_xxx + works with ActiveRecord::Associations::CollectionProxy -ActiveSupport::Relation match_array matcher - fails if the scope encompasses more records than on the right hand side - fails if the scope encompasses fewer records than on the right hand side - verifies that the scope returns the records on the right hand side, regardless of order +redirect_to + with should_not + when assert_redirected_to passes + fails with custom failure message + when assert_redirected_to fails + passes + when fails due to some other exception + raises that exception + with should + when fails due to some other exception + raises that exception + when assert_redirected_to passes + passes + when assert_redirected_to fails + uses failure message from assert_redirected_to send_email + with to_not + fails with a clear message when no emails were sent + checks email sending by all params together + fails with a clear message for negated version fails for multiple matches fails with a clear message - checks email sending by all params together - fails with a clear message when no emails were sent - with to_not checks email sending by no params - fails with a clear message for negated version with a custom negated version defined works with a negated version fails with a clear message @@ -3293,64 +2975,51 @@ works when second matching fails works when both matchings pass with compound matching - works when both matchings pass works when second matching fails works when first matching fails + works when both matchings pass -render_template +RSpec::Rails::HelperExampleGroup::ClassMethods + determine_default_helper_class + the described is a class + returns nil + the described is a module + returns the module + +have_rendered given a hash delegates to assert_template with should when fails due to some other exception raises that exception - when assert_template fails - uses failure message from assert_template when assert_template passes passes - given a string - delegates to assert_template + when assert_template fails + uses failure message from assert_template given a symbol converts to_s and delegates to assert_template with should_not - when fails with a redirect - gives informative error message - with a badly formatted error message - falls back to something informative - when assert_template passes - fails with custom failure message when fails due to some other exception raises that exception + when assert_template passes + fails with custom failure message when assert_template fails passes + when fails with a redirect + gives informative error message + with a badly formatted error message + falls back to something informative + given a string + delegates to assert_template -route_to - delegates to assert_recognizes - uses failure message from assert_recognizes - provides a description - with shortcut syntax - routes with extra options - routes with multiple query parameters - routes without extra options - routes with one query parameter - routes with nested query parameters - with should_not - when assert_recognizes passes - fails with custom message - when an exception is raised - raises that exception - when assert_recognizes fails with a routing error - passes - when assert_recognizes fails with an assertion failure - passes - with should - when assert_recognizes passes - passes - when assert_recognizes fails with a routing error - fails with message from assert_recognizes - when an exception is raised - raises that exception - when assert_recognizes fails with an assertion failure - fails with message from assert_recognizes +RSpec::Rails::FixtureFileUploadSupport + with fixture path not set + resolves fixture using relative path + with fixture path set in config + resolves supports `Pathname` objects + resolves fixture file + with fixture path set in spec + resolves fixture file RSpec::Rails::ViewSpecMethods .add_extra_params_accessors_to @@ -3366,256 +3035,198 @@ when accessors are defined removes them -RSpec::Rails::MinitestLifecycleAdapter - invokes minitest lifecycle hooks at the appropriate times - allows let variables named 'send' +RSpec::Rails::FixtureSupport + handles namespaced fixtures + with use_transactional_tests set to false + does not wrap the test in a transaction + with use_transactional_tests set to true + works with #uses_transaction helper + with use_transactional_fixtures set to false + still supports fixture_path/fixture_paths -be_a_new matcher - #with - wrong class and existing record - all attributes same - fails - one attribute value not the same - fails - no attributes same - fails - right class and new record - all attributes same - passes - one attribute value not the same - fails - no attributes same - fails - one attribute same - passes - with composable matchers - one attribute is a composable matcher - passes - fails - matcher is wrong type - fails - two attributes are composable matchers - only one matcher present in actual - fails - both matchers present in actual - passes - existing record - wrong class - fails - right class - fails - new record - wrong class - fails - right class - passes +ActionMailbox matchers + receive_inbound_email + passes when it receives inbound email + fails when negated when it receives inbound email + fails when it doesn't receive inbound email + passes when negated when it doesn't receive inbound email + +RSpec::Rails::AssertionDelegator + does not delegate method_missing + delegates back to the including instance for methods the assertion module requires + provides a module that delegates assertion methods to an isolated class + +be_valid matcher + does not include the validation context if not provided + includes the validation context if provided + includes a brief error message for the simplest implementation of validity + includes a brief error message when error message is wrong arity + includes a failure message for the negative case + includes the error messages in the failure message + uses a custom failure message if provided + includes the error messages for simple implementations of error messages ActiveRecord support - with partial double verification enabled - allows you to stub abstract classes - allows you to stub `ActiveRecord::Base` with partial double verification disabled allows you to stub abstract classes allows you to stub `ActiveRecord::Base` + with partial double verification enabled + allows you to stub `ActiveRecord::Base` + allows you to stub abstract classes -RSpec::Rails - has no malformed whitespace +route_to + provides a description + delegates to assert_recognizes + uses failure message from assert_recognizes + with should + when an exception is raised + raises that exception + when assert_recognizes fails with a routing error + fails with message from assert_recognizes + when assert_recognizes passes + passes + when assert_recognizes fails with an assertion failure + fails with message from assert_recognizes + with shortcut syntax + routes with nested query parameters + routes without extra options + routes with multiple query parameters + routes with extra options + routes with one query parameter + with should_not + when assert_recognizes fails with an assertion failure + passes + when an exception is raised + raises that exception + when assert_recognizes fails with a routing error + passes + when assert_recognizes passes + fails with custom message RSpec::Rails::SetupAndTeardownAdapter .setup - registers before hooks in the order setup is received - registers prepend_before hooks for the Rails' setup methods registers teardown hooks in the order setup is received + registers prepend_before hooks for the Rails' setup methods + registers before hooks in the order setup is received -RSpec::Rails::ModelExampleGroup +RSpec::Rails::RequestExampleGroup behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :model` - for an example group defined in a file in the ./spec/models/ directory - includes itself in the example group - tags groups in that directory with `type: :model` - allows users to override the type - applies configured `before(:context)` hooks with `type: :model` metadata - for an example group defined in a file in the .\spec\models\ directory - allows users to override the type - includes itself in the example group - tags groups in that directory with `type: :model` - applies configured `before(:context)` hooks with `type: :model` metadata when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :model` - for an example group defined in a file in the .\spec\models\ directory - does not tag groups in that directory with `type: :model` + includes itself in example groups tagged with `type: :request` + for an example group defined in a file in the ./spec/requests/ directory + does not tag groups in that directory with `type: :request` does not include itself in the example group - for an example group defined in a file in the ./spec/models/ directory + for an example group defined in a file in the .\spec\integration\ directory + does not tag groups in that directory with `type: :request` does not include itself in the example group - does not tag groups in that directory with `type: :model` - -RSpec::Rails::FixtureFileUploadSupport - with fixture path set in spec - resolves fixture file - with fixture path not set - resolves fixture using relative path - with fixture path set in config - resolves fixture file - resolves supports `Pathname` objects - -RSpec::Rails::RoutingExampleGroup - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :routing` - for an example group defined in a file in the ./spec/routing/ directory - tags groups in that directory with `type: :routing` - applies configured `before(:context)` hooks with `type: :routing` metadata - allows users to override the type - includes itself in the example group - for an example group defined in a file in the .\spec\routing\ directory - allows users to override the type - applies configured `before(:context)` hooks with `type: :routing` metadata - includes itself in the example group - tags groups in that directory with `type: :routing` - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :routing` - for an example group defined in a file in the .\spec\routing\ directory + for an example group defined in a file in the ./spec/integration/ directory + does not tag groups in that directory with `type: :request` does not include itself in the example group - does not tag groups in that directory with `type: :routing` - for an example group defined in a file in the ./spec/routing/ directory + for an example group defined in a file in the ./spec/api/ directory does not include itself in the example group - does not tag groups in that directory with `type: :routing` - named routes - delegates them to the route_set - -RSpec::Rails::ControllerExampleGroup - handles methods invoked via `method_missing` that use keywords - includes routing matchers - in a namespace - controller name - sets the name according to the defined controller namespace if it is not anonymous - sets the name as 'AnonymousController' if the controller is abstract - controller name - sets the name as AnonymousController if it's anonymous - sets the name according to defined controller if it is not anonymous - sets name as AnonymousController if defined as ApplicationController - sets name as AnonymousController if it inherits outer group's anonymous controller - sets name as AnonymousController if the controller is abstract - with implicit subject - uses the controller as the subject - doesn't cause let definition priority to be changed - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :controller` - for an example group defined in a file in the .\spec\controllers\ directory + does not tag groups in that directory with `type: :request` + for an example group defined in a file in the .\spec\requests\ directory does not include itself in the example group - does not tag groups in that directory with `type: :controller` - for an example group defined in a file in the ./spec/controllers/ directory + does not tag groups in that directory with `type: :request` + for an example group defined in a file in the .\spec\api\ directory + does not tag groups in that directory with `type: :request` does not include itself in the example group - does not tag groups in that directory with `type: :controller` when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :controller` - for an example group defined in a file in the ./spec/controllers/ directory + includes itself in example groups tagged with `type: :request` + for an example group defined in a file in the ./spec/requests/ directory + allows users to override the type + applies configured `before(:context)` hooks with `type: :request` metadata + tags groups in that directory with `type: :request` + includes itself in the example group + for an example group defined in a file in the .\spec\api\ directory + tags groups in that directory with `type: :request` + applies configured `before(:context)` hooks with `type: :request` metadata includes itself in the example group - applies configured `before(:context)` hooks with `type: :controller` metadata allows users to override the type - tags groups in that directory with `type: :controller` - for an example group defined in a file in the .\spec\controllers\ directory + for an example group defined in a file in the ./spec/integration/ directory + applies configured `before(:context)` hooks with `type: :request` metadata + tags groups in that directory with `type: :request` + allows users to override the type includes itself in the example group - applies configured `before(:context)` hooks with `type: :controller` metadata + for an example group defined in a file in the .\spec\requests\ directory + applies configured `before(:context)` hooks with `type: :request` metadata allows users to override the type - tags groups in that directory with `type: :controller` - #bypass_rescue - overrides the rescue_with_handler method on the controller to raise submitted error - #controller - delegates named route helpers to the underlying controller - calls NamedRouteCollection#route_defined? when it checks that given route is defined or not - with inferred anonymous controller - defaults to inferring anonymous controller class - when infer_base_class_for_anonymous_controllers is true - infers the anonymous controller class when no ApplicationController is present - infers the anonymous controller class - when infer_base_class_for_anonymous_controllers is false - sets the anonymous controller class to ApplicationController - sets the anonymous controller class to ActiveController::Base when no ApplicationController is present - with explicit subject - uses the specified subject instead of the controller - -be_routable - provides a description - with should - passes if routes recognize the path - fails if routes do not recognize the path - with should_not - passes if routes do not recognize the path - fails if routes recognize the path - -RSpec::Rails::MinitestAssertionAdapter - exposes refute_operator to host examples - exposes refute_equal to host examples - exposes assert_operator to host examples - exposes assert_silent to host examples - exposes assert to host examples - exposes assert_raises to host examples - exposes assert_respond_to to host examples - exposes refute_pattern to host examples - exposes assert_kind_of to host examples - exposes assert_instance_of to host examples - exposes assert_same to host examples - exposes assert_equal to host examples - exposes refute_empty to host examples - does not leak TestUnit specific methods into the AssertionDelegator - exposes assert_path_exists to host examples - exposes refute_kind_of to host examples - exposes refute_match to host examples - exposes assert_pattern to host examples - exposes assert_output to host examples - exposes assert_in_epsilon to host examples - exposes assert_nil to host examples - exposes refute_respond_to to host examples - does not expose Minitest's message method - exposes flunk to host examples - exposes assert_match to host examples - exposes assert_predicate to host examples - exposes refute_in_epsilon to host examples - exposes refute_in_delta to host examples - exposes assert_empty to host examples - exposes refute_nil to host examples - exposes assert_in_delta to host examples - exposes refute to host examples - exposes refute_predicate to host examples - exposes assert_throws to host examples - exposes refute_same to host examples - exposes refute_path_exists to host examples - exposes assert_includes to host examples - does not expose internal methods of Minitest - exposes refute_includes to host examples - exposes refute_instance_of to host examples - exposes assert_send to host examples + includes itself in the example group + tags groups in that directory with `type: :request` + for an example group defined in a file in the .\spec\integration\ directory + includes itself in the example group + tags groups in that directory with `type: :request` + applies configured `before(:context)` hooks with `type: :request` metadata + allows users to override the type + for an example group defined in a file in the ./spec/api/ directory + allows users to override the type + includes itself in the example group + applies configured `before(:context)` hooks with `type: :request` metadata + tags groups in that directory with `type: :request` ActiveModel support with partial double verification disabled - allows you to stub `ActiveModel` allows you to stub instances of `ActiveModel` + allows you to stub `ActiveModel` with partial double verification enabled - allows you to stub instances of `ActiveModel` allows you to stub `ActiveModel` + allows you to stub instances of `ActiveModel` -should have_xxx - works with ActiveRecord::Associations::CollectionProxy - -RSpec::Rails::AssertionDelegator - delegates back to the including instance for methods the assertion module requires - provides a module that delegates assertion methods to an isolated class - does not delegate method_missing +HaveEnqueuedMail matchers + have_enqueued_mail + passes when only given mailer argument + generates a failure message with on_queue + passes when a mailer method is called with deliver_later + generates a failure message with at most hint + matches based on mailer class and method name + passes when deliver_later is called with a queue argument + generates a failure message with at least hint + passes with :twice count + only calls with block if other conditions are met + passes with multiple emails + generates a failure message with arguments + generates a failure message when given 0 argument + passes when using the enqueue_email alias + passes when negated with only mailer arguments + generates a failure message with unmatching enqueued mail jobs + ensure that the right mailer is enqueued + passes with :once count + passes when negated + passes multiple arguments to with block + passes when given 0 arguments + passes with provided argument matchers + generates a failure message + fails when negated and mail is enqueued + passes when using the have_enqueued_email alias + counts only emails enqueued in the block + passes with at_least when enqueued emails are over the limit + throws descriptive error when no test adapter set + passes when negated with 0 arguments + passes with at_most when enqueued emails are under the limit + generates a failure message when given only mailer argument + passes for mailer methods with default arguments + accepts composable matchers as an at date + passes for mailer methods that accept arguments when the provided argument matcher is not used + generates a failure message with at + fails with with block with incorrect data + fails when too many emails are enqueued + passes with :thrice count + passes when deliver_later is called with a wait_until argument + passes when using the enqueue_mail alias + when parameterized + passes with provided argument matchers + passes when mailer is parameterized + passes when mixing parameterized and non-parameterized emails + mailer job is unified + passes when mixing parameterized and non-parameterized emails + passes when using a mailer with `delivery_job` set to a sub class of `ActionMailer::DeliveryJob` + passes when given a global id serialized argument + passes when mailer is parameterized + matches arguments when mailer has only args + passes with provided argument matchers RSpec::Rails::ViewRendering - when render_views? is false - supports manipulating view paths - supports manipulating view paths with resolvers - supports manipulating view paths with arrays - with empty template resolver - works with custom resolvers - works with strings default ActionController::Metal renders views @@ -3624,6 +3235,8 @@ does not render views in a nested group #render_views propagates to examples in nested groups properly + with no args + tells examples to render views with true tells examples to render views with false @@ -3639,310 +3252,733 @@ tells examples to render views with true tells examples to render views - with no args - tells examples to render views + when render_views? is false + supports manipulating view paths with arrays + supports manipulating view paths with resolvers + supports manipulating view paths + with empty template resolver + works with custom resolvers + works with strings -RSpec::Rails::ChannelExampleGroup +ActiveJob matchers + have_been_performed + counts all performed jobs + passes when negated + passes with default jobs count (exactly one) + fails when job is not performed + have_been_enqueued + passes with default jobs count (exactly one) + counts all enqueued jobs + passes when negated + fails when job is not enqueued + fails when negated and several jobs enqueued + accepts composable matchers as an at date + have_enqueued_job + passes with default jobs count (exactly one) + passes with provided at date + passes with :once count + passes with ActiveSupport::TimeWithZone + only calls with block if other conditions are met + fails when negated and several jobs enqueued + generates failure message with at most hint + raises ArgumentError when no Proc passed to expect + fails when negated and job is enqueued + passes with at_most count when enqueued jobs are under limit + generates failure message with all provided options + passes with provided arguments containing global id object + passes with job name + has an enqueued job when not providing at and there is a wait + passes multiple arguments to with block + has an enqueued job when providing at of :no_wait and there is no wait + works with time offsets + fails when too many jobs enqueued + counts only jobs enqueued in block + passes when negated + generates failure message with at least hint + warns when time offsets are inprecise + passes with Time + accepts composable matchers as an at date + does not have an enqueued job when providing at of :no_wait and there is a wait + throws descriptive error when no test adapter set + passes with provided arguments + passes with provided argument matchers + passes with provided at time + passes with provided queue name as symbol + reports correct number in fail error message + passes deserialized arguments to with block + passes with at_least count when enqueued jobs are over limit + passes with provided queue name as string + fails with with block with incorrect data + passes with :thrice count + passes with multiple jobs + has an enqueued job when providing at and there is no wait + passes with :twice count + passes when using alias + ignores undeserializable arguments + fails when job is not enqueued + when previously enqueued jobs were performed + counts newly enqueued jobs + when job is retried + passes with reenqueued job + have_performed_job + only calls with block if other conditions are met + passes with provided arguments + passes with multiple jobs + passes with at_most count when performed jobs are under limit + passes with at_least count when performed jobs are over limit + passes with provided argument matchers + passes with provided arguments containing global id object + fails with with block with incorrect data + passes with job name + generates failure message with at most hint + generates failure message with all provided options + passes with :thrice count + passes with provided at date + passes with :twice count + passes when negated + passes multiple arguments to with block + passes with provided queue name as string + fails when negated and job is performed + passes with provided queue name as symbol + raises ArgumentError when no Proc passed to expect + throws descriptive error when no test adapter set + passes deserialized arguments to with block + generates failure message with at least hint + passes with :once count + fails when job is not performed + passes with default jobs count (exactly one) + fails when too many jobs performed + counts only jobs performed in block + reports correct number in fail error message + Active Job test helpers + does not raise that "assert_nothing_raised" is undefined + +RSpec::Rails::RoutingExampleGroup + named routes + delegates them to the route_set behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :routing` + for an example group defined in a file in the .\spec\routing\ directory + does not tag groups in that directory with `type: :routing` + does not include itself in the example group + for an example group defined in a file in the ./spec/routing/ directory + does not tag groups in that directory with `type: :routing` + does not include itself in the example group when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :channel` - for an example group defined in a file in the ./spec/channels/ directory + includes itself in example groups tagged with `type: :routing` + for an example group defined in a file in the ./spec/routing/ directory + allows users to override the type + tags groups in that directory with `type: :routing` includes itself in the example group - applies configured `before(:context)` hooks with `type: :channel` metadata + applies configured `before(:context)` hooks with `type: :routing` metadata + for an example group defined in a file in the .\spec\routing\ directory + applies configured `before(:context)` hooks with `type: :routing` metadata allows users to override the type - tags groups in that directory with `type: :channel` - for an example group defined in a file in the .\spec\channels\ directory - tags groups in that directory with `type: :channel` + tags groups in that directory with `type: :routing` + includes itself in the example group + +be_new_record + a new record + fails with custom failure message + passes + a persisted record + fails + fails with custom failure message + +RSpec::Rails::HelperExampleGroup + provides a controller_path based on the helper module's name + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :helper` + for an example group defined in a file in the ./spec/helpers/ directory + does not tag groups in that directory with `type: :helper` + does not include itself in the example group + for an example group defined in a file in the .\spec\helpers\ directory + does not tag groups in that directory with `type: :helper` + does not include itself in the example group + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :helper` + for an example group defined in a file in the ./spec/helpers/ directory + includes itself in the example group + tags groups in that directory with `type: :helper` allows users to override the type - applies configured `before(:context)` hooks with `type: :channel` metadata + applies configured `before(:context)` hooks with `type: :helper` metadata + for an example group defined in a file in the .\spec\helpers\ directory + applies configured `before(:context)` hooks with `type: :helper` metadata + tags groups in that directory with `type: :helper` includes itself in the example group + allows users to override the type + #helper + returns the instance of AV::Base provided by AV::TC::Behavior + includes ApplicationHelper + +have_broadcasted_to matchers + have_broadcasted_to + fails when negated and message is sent + fails when message is not sent + passes when using symbol target + passes with :once count + passes with provided data matchers + passes when negated + passes with :twice count + generates failure message with at least hint + passes with at_least count when sent messages are over limit + reports correct number in fail error message + passes with default messages count (exactly one) + raises ArgumentError when no Proc passed to expect + passes with :thrice count + fails when too many messages broadcast + generates failure message when data not match + passes with at_most count when sent messages are under limit + passes when using alias + passes with provided data matchers with anything + counts only messages sent in block + passes with multiple streams + throws descriptive error when no test adapter set + generates failure message with at most hint + fails with with block with incorrect data + passes with provided data + when object is passed as first argument + when channel is present + passes + when channel can't be inferred + raises exception + +RSpec::Rails::FeatureExampleGroup + includes Rails route helpers + when nested inside a request example group + includes Rails route helpers + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :feature` + for an example group defined in a file in the ./spec/features/ directory + applies configured `before(:context)` hooks with `type: :feature` metadata + allows users to override the type + tags groups in that directory with `type: :feature` + includes itself in the example group + for an example group defined in a file in the .\spec\features\ directory + applies configured `before(:context)` hooks with `type: :feature` metadata + tags groups in that directory with `type: :feature` + includes itself in the example group + allows users to override the type when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :channel` - for an example group defined in a file in the ./spec/channels/ directory + includes itself in example groups tagged with `type: :feature` + for an example group defined in a file in the ./spec/features/ directory does not include itself in the example group - does not tag groups in that directory with `type: :channel` - for an example group defined in a file in the .\spec\channels\ directory - does not tag groups in that directory with `type: :channel` + does not tag groups in that directory with `type: :feature` + for an example group defined in a file in the .\spec\features\ directory does not include itself in the example group + does not tag groups in that directory with `type: :feature` + #visit + raises an error informing about missing Capybara + is resistant to load order errors + +RSpec::Rails::MinitestAssertionAdapter + exposes assert_empty to host examples + exposes refute_pattern to host examples + exposes assert_in_delta to host examples + exposes assert_match to host examples + exposes assert_includes to host examples + exposes assert_output to host examples + exposes refute_operator to host examples + exposes flunk to host examples + exposes refute_predicate to host examples + exposes assert_predicate to host examples + exposes assert_send to host examples + exposes refute_respond_to to host examples + exposes refute_equal to host examples + exposes refute_same to host examples + exposes assert_silent to host examples + exposes refute_in_epsilon to host examples + exposes refute_kind_of to host examples + does not expose internal methods of Minitest + exposes assert_same to host examples + exposes assert_throws to host examples + exposes assert_respond_to to host examples + exposes assert_path_exists to host examples + exposes refute_in_delta to host examples + exposes refute_includes to host examples + exposes assert to host examples + exposes refute_match to host examples + exposes assert_operator to host examples + does not expose Minitest's message method + exposes refute_nil to host examples + exposes assert_in_epsilon to host examples + exposes assert_kind_of to host examples + does not leak TestUnit specific methods into the AssertionDelegator + exposes refute_instance_of to host examples + exposes refute to host examples + exposes assert_nil to host examples + exposes assert_pattern to host examples + exposes assert_raises to host examples + exposes refute_empty to host examples + exposes refute_path_exists to host examples + exposes assert_equal to host examples + exposes assert_instance_of to host examples have_stream matchers have_streams - does not allow usage raises when no subscription started + does not allow usage with negated form passes with negated form fails with message raises when no subscription started raises ArgumentError when no subscription passed to expect - have_stream_for - raises when no subscription started + have_stream_from fails with message passes raises ArgumentError when no subscription passed to expect + raises when no subscription started + with composable matcher + fails with message + passes with negated form passes fails with message - have_stream_from - raises when no subscription started + have_stream_for fails with message - raises ArgumentError when no subscription passed to expect passes + raises ArgumentError when no subscription passed to expect + raises when no subscription started with negated form passes fails with message - with composable matcher - passes - fails with message -have_rendered - given a hash - delegates to assert_template +be_routable + provides a description + with should + fails if routes do not recognize the path + passes if routes recognize the path with should_not + fails if routes recognize the path + passes if routes do not recognize the path + +ActiveSupport::Relation match_array matcher + fails if the scope encompasses fewer records than on the right hand side + fails if the scope encompasses more records than on the right hand side + verifies that the scope returns the records on the right hand side, regardless of order + +Configuration + fixture support is included with metadata `:use_fixtures` + metadata `type: :helper` sets up helper example groups + adds 'lib/rspec/rails' to the backtrace exclusions + #filter_rails_from_backtrace! adds exclusion patterns for rails gems + metadata `type: :view` sets up view example groups + metadata `type: :routing` sets up routing example groups + has a default #file_fixture_path of 'spec/fixtures/files' + metadata `type: :mailer` sets up mailer example groups + metadata `type: :controller` sets up controller example groups + metadata `type: :request` sets up request example groups + metadata `type: :model` sets up model example groups + adds 'vendor/' to the backtrace exclusions + metadata `type: :feature` sets up feature example groups + #infer_spec_type_from_file_location! + sets the type to `:view` for file path `spec/views` + sets the type to `:request` for file path `spec/requests` + sets the type to `:helper` for file path `spec/helpers` + sets the type to `:routing` for file path `spec/routing` + sets the type to `:request` for file path `spec/api` + sets the type to `:controller` for file path `spec/controllers` + sets the type to `:mailer` for file path `spec/mailers` + sets the type to `:model` for file path `spec/models` + sets the type to `:request` for file path `spec/integration` + sets the type to `:feature` for file path `spec/features` + adds settings + `#use_transactional_fixtures` is `nil` by default + `#use_transactional_fixtures?` is `false` by default + `#fixture_path?` is `false` by default + `#global_fixtures?` is `false` by default + `#global_fixtures?` is `false` by default + `#rendering_views` is `nil` by default + `#fixture_path?` is `false` by default + `#rendering_views?` is `false` by default + `#global_fixtures` is `nil` by default + `#infer_base_class_for_anonymous_controllers` is `true` by default + `#rendering_views?` is `false` by default + `#render_views?` is false by default + `#use_instantiated_fixtures?` is `false` by default + `#use_instantiated_fixtures?` is `false` by default + `#infer_base_class_for_anonymous_controllers?` is `true` by default + `#use_instantiated_fixtures` is `nil` by default + `#use_transactional_fixtures?` is `false` by default + `#use_transactional_examples` is an alias for `use_transactional_fixtures` + `#infer_base_class_for_anonymous_controllers?` is `true` by default + `#render_views` sets `render_views?` to `true` + `#fixture_path` is `nil` by default + `#use_transactional_fixtures=` + sets `use_transactional_fixtures` to the provided value + changes `use_transactional_fixtures?` to the true for a truthy value + `#use_instantiated_fixtures=` + sets `use_instantiated_fixtures` to the provided value + changes `use_instantiated_fixtures?` to the true for a truthy value + `#fixture_path=` + sets `fixture_path` to the provided value + changes `fixture_path?` to the true for a truthy value + `#render_views=` + sets `render_views?` to the truthiness of the provided value + `#infer_base_class_for_anonymous_controllers=` + changes `infer_base_class_for_anonymous_controllers?` to the true for a truthy value + sets `infer_base_class_for_anonymous_controllers` to the provided value + `#rendering_views=` + changes `rendering_views?` to the true for a truthy value + sets `rendering_views` to the provided value + `#global_fixtures=` + changes `global_fixtures?` to the true for a truthy value + sets `global_fixtures` to the provided value + clears ActionMailer::Base::Deliveries after each example + only has deliveries from this test (e.g. from email_2@example.com) (PENDING: Temporarily skipped with xit) + only has deliveries from this test (e.g. from email@example.com) (PENDING: Temporarily skipped with xit) + +render_template + with should + when assert_template passes + passes when fails due to some other exception raises that exception when assert_template fails - passes + uses failure message from assert_template + given a string + delegates to assert_template + given a symbol + converts to_s and delegates to assert_template + given a hash + delegates to assert_template + with should_not when assert_template passes fails with custom failure message + when fails due to some other exception + raises that exception when fails with a redirect gives informative error message with a badly formatted error message falls back to something informative - given a string - delegates to assert_template - with should - when fails due to some other exception - raises that exception - when assert_template passes - passes when assert_template fails - uses failure message from assert_template - given a symbol - converts to_s and delegates to assert_template - -be_valid matcher - uses a custom failure message if provided - does not include the validation context if not provided - includes the error messages in the failure message - includes a brief error message when error message is wrong arity - includes the error messages for simple implementations of error messages - includes the validation context if provided - includes a failure message for the negative case - includes a brief error message for the simplest implementation of validity + passes -ActionMailbox matchers - receive_inbound_email - fails when it doesn't receive inbound email - passes when it receives inbound email - fails when negated when it receives inbound email - passes when negated when it doesn't receive inbound email +RSpec::Rails::SystemExampleGroup + hook order + calls Capybara.reset_sessions (TestUnit after_teardown) after any after hooks + #driver + calls :driven_by method only once + uses :selenium driver by default + sets :rack_test driver using by before_action + #method_name + handles long method names which include unicode characters + converts special characters to underscores + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :system` + for an example group defined in a file in the ./spec/system/ directory + does not include itself in the example group + does not tag groups in that directory with `type: :system` + for an example group defined in a file in the .\spec\system\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :system` + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :system` + for an example group defined in a file in the .\spec\system\ directory + allows users to override the type + applies configured `before(:context)` hooks with `type: :system` metadata + tags groups in that directory with `type: :system` + includes itself in the example group + for an example group defined in a file in the ./spec/system/ directory + includes itself in the example group + applies configured `before(:context)` hooks with `type: :system` metadata + allows users to override the type + tags groups in that directory with `type: :system` + #after + sets the :extra_failure_lines metadata to an array of STDOUT lines -redirect_to - with should - when fails due to some other exception - raises that exception - when assert_redirected_to passes - passes - when assert_redirected_to fails - uses failure message from assert_redirected_to - with should_not - when fails due to some other exception - raises that exception - when assert_redirected_to fails - passes - when assert_redirected_to passes - fails with custom failure message +RSpec::Rails + has no malformed whitespace -RSpec::Rails::HelperExampleGroup::ClassMethods - determine_default_helper_class - the described is a class - returns nil - the described is a module - returns the module +RSpec::Rails::MinitestLifecycleAdapter + invokes minitest lifecycle hooks at the appropriate times + allows let variables named 'send' RSpec::Rails::ViewExampleGroup - #view - is accessible to configuration-level hooks - delegates to _view - #stub_template - prepends an ActionView::FixtureResolver to the view path - caches FixtureResolver instances between examples - caches FixtureResolver instances between example groups - #_controller_path - with a nested _default_file_to_render - it returns the directory path - with a common _default_file_to_render - it returns the directory - #render - given a hash - sends the hash as the first arg to render - given no input - converts the filename with variant into render options - converts the filename without format into render options - sends render(:template => (described file)) to the view - converts the filename components into render options - given a string - sends string as the first arg to render - automatic inclusion of helpers - includes the namespaced helper with the same name - operates normally when no helper with the same name exists - operates normally when the view has no path and there is a Helper class defined - includes the helper with the same name - application helper exists - includes the application helper - no application helper exists - operates normally behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is not configured includes itself in example groups tagged with `type: :view` for an example group defined in a file in the ./spec/views/ directory - does not include itself in the example group does not tag groups in that directory with `type: :view` + does not include itself in the example group for an example group defined in a file in the .\spec\views\ directory does not include itself in the example group does not tag groups in that directory with `type: :view` when `infer_spec_type_from_file_location!` is configured includes itself in example groups tagged with `type: :view` - for an example group defined in a file in the .\spec\views\ directory + for an example group defined in a file in the ./spec/views/ directory tags groups in that directory with `type: :view` applies configured `before(:context)` hooks with `type: :view` metadata allows users to override the type includes itself in the example group - for an example group defined in a file in the ./spec/views/ directory + for an example group defined in a file in the .\spec\views\ directory applies configured `before(:context)` hooks with `type: :view` metadata + tags groups in that directory with `type: :view` allows users to override the type includes itself in the example group - tags groups in that directory with `type: :view` + automatic inclusion of helpers + operates normally when no helper with the same name exists + operates normally when the view has no path and there is a Helper class defined + includes the helper with the same name + includes the namespaced helper with the same name + no application helper exists + operates normally + application helper exists + includes the application helper routes helpers collides with asset helpers uses routes helpers - #params - delegates to the controller + #stub_template + prepends an ActionView::FixtureResolver to the view path + caches FixtureResolver instances between example groups + caches FixtureResolver instances between examples #template delegates to #view is deprecated - -be_new_record - a persisted record - fails with custom failure message - fails - a new record - fails with custom failure message - passes + #view + is accessible to configuration-level hooks + delegates to _view + #params + delegates to the controller + #render + given a hash + sends the hash as the first arg to render + given a string + sends string as the first arg to render + given no input + converts the filename components into render options + converts the filename with variant into render options + sends render(:template => (described file)) to the view + converts the filename without format into render options + #_controller_path + with a common _default_file_to_render + it returns the directory + with a nested _default_file_to_render + it returns the directory path RSpec::Rails::MailboxExampleGroup - #have_failed - raises on unfailed mail - does not raise otherwise behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is configured includes itself in example groups tagged with `type: :mailbox` for an example group defined in a file in the ./spec/mailboxes/ directory + includes itself in the example group + allows users to override the type tags groups in that directory with `type: :mailbox` applies configured `before(:context)` hooks with `type: :mailbox` metadata - allows users to override the type - includes itself in the example group for an example group defined in a file in the .\spec\mailboxes\ directory - applies configured `before(:context)` hooks with `type: :mailbox` metadata + allows users to override the type includes itself in the example group tags groups in that directory with `type: :mailbox` - allows users to override the type + applies configured `before(:context)` hooks with `type: :mailbox` metadata when `infer_spec_type_from_file_location!` is not configured includes itself in example groups tagged with `type: :mailbox` for an example group defined in a file in the ./spec/mailboxes/ directory - does not include itself in the example group does not tag groups in that directory with `type: :mailbox` - for an example group defined in a file in the .\spec\mailboxes\ directory does not include itself in the example group + for an example group defined in a file in the .\spec\mailboxes\ directory does not tag groups in that directory with `type: :mailbox` - #process - sends mail to the mailbox + does not include itself in the example group #have_bounced - does not raise otherwise raises on unbounced mail + does not raise otherwise + #have_failed + raises on unfailed mail + does not raise otherwise #have_been_delivered raises on undelivered mail does not raise otherwise + #process + sends mail to the mailbox -RSpec::Rails::HelperExampleGroup - provides a controller_path based on the helper module's name - #helper - returns the instance of AV::Base provided by AV::TC::Behavior - includes ApplicationHelper +RSpec::Rails::JobExampleGroup behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :helper` - for an example group defined in a file in the ./spec/helpers/ directory - does not tag groups in that directory with `type: :helper` + includes itself in example groups tagged with `type: :job` + for an example group defined in a file in the ./spec/jobs/ directory does not include itself in the example group - for an example group defined in a file in the .\spec\helpers\ directory + does not tag groups in that directory with `type: :job` + for an example group defined in a file in the .\spec\jobs\ directory + does not tag groups in that directory with `type: :job` does not include itself in the example group - does not tag groups in that directory with `type: :helper` when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :helper` - for an example group defined in a file in the .\spec\helpers\ directory - tags groups in that directory with `type: :helper` + includes itself in example groups tagged with `type: :job` + for an example group defined in a file in the .\spec\jobs\ directory + tags groups in that directory with `type: :job` + applies configured `before(:context)` hooks with `type: :job` metadata + allows users to override the type includes itself in the example group - applies configured `before(:context)` hooks with `type: :helper` metadata + for an example group defined in a file in the ./spec/jobs/ directory + tags groups in that directory with `type: :job` allows users to override the type - for an example group defined in a file in the ./spec/helpers/ directory - tags groups in that directory with `type: :helper` + includes itself in the example group + applies configured `before(:context)` hooks with `type: :job` metadata + +RSpec::Rails::ModelExampleGroup + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :model` + for an example group defined in a file in the ./spec/models/ directory + applies configured `before(:context)` hooks with `type: :model` metadata + includes itself in the example group allows users to override the type + tags groups in that directory with `type: :model` + for an example group defined in a file in the .\spec\models\ directory + allows users to override the type + tags groups in that directory with `type: :model` includes itself in the example group - applies configured `before(:context)` hooks with `type: :helper` metadata + applies configured `before(:context)` hooks with `type: :model` metadata + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :model` + for an example group defined in a file in the ./spec/models/ directory + does not tag groups in that directory with `type: :model` + does not include itself in the example group + for an example group defined in a file in the .\spec\models\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :model` -RSpec::Rails::SystemExampleGroup +RSpec::Rails::ChannelExampleGroup behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :system` - for an example group defined in a file in the .\spec\system\ directory + includes itself in example groups tagged with `type: :channel` + for an example group defined in a file in the ./spec/channels/ directory does not include itself in the example group - does not tag groups in that directory with `type: :system` - for an example group defined in a file in the ./spec/system/ directory - does not tag groups in that directory with `type: :system` + does not tag groups in that directory with `type: :channel` + for an example group defined in a file in the .\spec\channels\ directory + does not tag groups in that directory with `type: :channel` does not include itself in the example group when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :system` - for an example group defined in a file in the .\spec\system\ directory - tags groups in that directory with `type: :system` + includes itself in example groups tagged with `type: :channel` + for an example group defined in a file in the .\spec\channels\ directory + allows users to override the type + tags groups in that directory with `type: :channel` includes itself in the example group + applies configured `before(:context)` hooks with `type: :channel` metadata + for an example group defined in a file in the ./spec/channels/ directory + applies configured `before(:context)` hooks with `type: :channel` metadata allows users to override the type - applies configured `before(:context)` hooks with `type: :system` metadata - for an example group defined in a file in the ./spec/system/ directory - tags groups in that directory with `type: :system` - applies configured `before(:context)` hooks with `type: :system` metadata includes itself in the example group + tags groups in that directory with `type: :channel` + +RSpec::Rails::ControllerExampleGroup + handles methods invoked via `method_missing` that use keywords + includes routing matchers + in a namespace + controller name + sets the name as 'AnonymousController' if the controller is abstract + sets the name according to the defined controller namespace if it is not anonymous + with inferred anonymous controller + defaults to inferring anonymous controller class + when infer_base_class_for_anonymous_controllers is false + sets the anonymous controller class to ApplicationController + sets the anonymous controller class to ActiveController::Base when no ApplicationController is present + when infer_base_class_for_anonymous_controllers is true + infers the anonymous controller class + infers the anonymous controller class when no ApplicationController is present + controller name + sets the name as AnonymousController if it's anonymous + sets the name according to defined controller if it is not anonymous + sets name as AnonymousController if the controller is abstract + sets name as AnonymousController if defined as ApplicationController + sets name as AnonymousController if it inherits outer group's anonymous controller + with implicit subject + uses the controller as the subject + doesn't cause let definition priority to be changed + #controller + delegates named route helpers to the underlying controller + calls NamedRouteCollection#route_defined? when it checks that given route is defined or not + #bypass_rescue + overrides the rescue_with_handler method on the controller to raise submitted error + with explicit subject + uses the specified subject instead of the controller + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :controller` + for an example group defined in a file in the ./spec/controllers/ directory + does not include itself in the example group + does not tag groups in that directory with `type: :controller` + for an example group defined in a file in the .\spec\controllers\ directory + does not tag groups in that directory with `type: :controller` + does not include itself in the example group + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :controller` + for an example group defined in a file in the .\spec\controllers\ directory + applies configured `before(:context)` hooks with `type: :controller` metadata + tags groups in that directory with `type: :controller` + allows users to override the type + includes itself in the example group + for an example group defined in a file in the ./spec/controllers/ directory + includes itself in the example group + applies configured `before(:context)` hooks with `type: :controller` metadata + tags groups in that directory with `type: :controller` allows users to override the type - #driver - sets :rack_test driver using by before_action - uses :selenium driver by default - calls :driven_by method only once - #method_name - handles long method names which include unicode characters - converts special characters to underscores - hook order - calls Capybara.reset_sessions (TestUnit after_teardown) after any after hooks - #after - sets the :extra_failure_lines metadata to an array of STDOUT lines + +be_a_new matcher + #with + right class and new record + one attribute value not the same + fails + all attributes same + passes + with composable matchers + two attributes are composable matchers + both matchers present in actual + passes + only one matcher present in actual + fails + one attribute is a composable matcher + passes + fails + matcher is wrong type + fails + no attributes same + fails + one attribute same + passes + wrong class and existing record + no attributes same + fails + all attributes same + fails + one attribute value not the same + fails + existing record + right class + fails + wrong class + fails + new record + wrong class + fails + right class + passes Pending: (Failures listed here are expected and do not affect your suite's status) - 1) Configuration clears ActionMailer::Base::Deliveries after each example only has deliveries from this test (e.g. from email@example.com) + 1) Configuration clears ActionMailer::Base::Deliveries after each example only has deliveries from this test (e.g. from email_2@example.com) # Temporarily skipped with xit - # ./spec/rspec/rails/configuration_spec.rb:372 + # ./spec/rspec/rails/configuration_spec.rb:378 - 2) Configuration clears ActionMailer::Base::Deliveries after each example only has deliveries from this test (e.g. from email_2@example.com) + 2) Configuration clears ActionMailer::Base::Deliveries after each example only has deliveries from this test (e.g. from email@example.com) # Temporarily skipped with xit - # ./spec/rspec/rails/configuration_spec.rb:378 + # ./spec/rspec/rails/configuration_spec.rb:372 -Finished in 4.77 seconds (files took 3.77 seconds to load) +Finished in 6.6 seconds (files took 6.09 seconds to load) 818 examples, 0 failures, 2 pending -Randomized with seed 24597 +Randomized with seed 21472 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -3976,12 +4012,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/4023136/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4023136/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/3700471 and its subdirectories -I: Current time: Mon Mar 16 10:39:08 -12 2026 -I: pbuilder-time-stamp: 1773700748 +I: removing directory /srv/workspace/pbuilder/4023136 and its subdirectories +I: Current time: Wed Feb 12 06:18:58 +14 2025 +I: pbuilder-time-stamp: 1739290738