Diff of the two buildlogs: -- --- b1/build.log 2025-03-13 07:24:30.739629000 +0000 +++ b2/build.log 2025-03-13 07:25:45.960253277 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Apr 15 01:46:43 -12 2026 -I: pbuilder-time-stamp: 1776260803 +I: Current time: Thu Mar 13 21:24:33 +14 2025 +I: pbuilder-time-stamp: 1741850673 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -31,54 +31,86 @@ dpkg-source: info: applying disable-randomly-failing-test.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/121087/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/48290/tmp/hooks/D01_modify_environment starting +debug: Running on ionos12-i386. +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 Mar 13 07:24 /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/48290/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/48290/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=22 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='i386' + 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]="i686-pc-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=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=10 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='2dc222537eb14b1ab53ae04b38b5a4e6' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='121087' - PS1='# ' - PS2='> ' + INVOCATION_ID=e43080a45c354575ac05af5b3ea9de6b + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-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=48290 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.KQgAy0MB/pbuilderrc_5DxS --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.KQgAy0MB/b1 --logfile b1/build.log ruby-rspec-rails_7.1.1-2.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152: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.KQgAy0MB/pbuilderrc_I6DS --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.KQgAy0MB/b2 --logfile b2/build.log ruby-rspec-rails_7.1.1-2.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos6-i386 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Mar 4 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/121087/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Mar 4 11:20 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/48290/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -339,7 +371,7 @@ Get: 195 http://deb.debian.org/debian trixie/main i386 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 196 http://deb.debian.org/debian trixie/main i386 ruby-sqlite3 i386 1.7.3-1 [51.3 kB] Get: 197 http://deb.debian.org/debian trixie/main i386 ruby-warning all 1.3.0-1 [8968 B] -Fetched 54.7 MB in 1s (74.0 MB/s) +Fetched 54.7 MB in 1s (77.0 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:i386. (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 ... 19788 files and directories currently installed.) @@ -982,8 +1014,8 @@ Setting up tzdata (2025a-2) ... Current default time zone: 'Etc/UTC' -Local time is now: Wed Apr 15 13:47:09 UTC 2026. -Universal Time is now: Wed Apr 15 13:47:09 UTC 2026. +Local time is now: Thu Mar 13 07:25:11 UTC 2025. +Universal Time is now: Thu Mar 13 07:25:11 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-websocket-extensions (0.1.5-2) ... @@ -1162,7 +1194,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-rspec-rails-7.1.1/ && 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_7.1.1-2_source.changes +I: user script /srv/workspace/pbuilder/48290/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/48290/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-rspec-rails-7.1.1/ && 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_7.1.1-2_source.changes dpkg-buildpackage: info: source package ruby-rspec-rails dpkg-buildpackage: info: source version 7.1.1-2 dpkg-buildpackage: info: source distribution unstable @@ -1195,7 +1231,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/d20260415-127034-jfm3fs/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250313-54178-j1e8ns/gemspec WARNING: open-ended dependency on actionpack (>= 7.0) is not recommended if actionpack is semantically versioned, use: add_runtime_dependency "actionpack", "~> 7.0" @@ -1213,7 +1249,7 @@ Name: rspec-rails Version: 7.1.1 File: rspec-rails-7.1.1.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/d20260415-127034-jfm3fs/rspec-rails-7.1.1.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/d20250313-54178-j1e8ns/rspec-rails-7.1.1.gem /build/reproducible-path/ruby-rspec-rails-7.1.1/debian/ruby-rspec-rails/usr/share/rubygems-integration/all/gems/rspec-rails-7.1.1/lib/generators/rspec.rb /build/reproducible-path/ruby-rspec-rails-7.1.1/debian/ruby-rspec-rails/usr/share/rubygems-integration/all/gems/rspec-rails-7.1.1/lib/generators/rspec/channel/channel_generator.rb /build/reproducible-path/ruby-rspec-rails-7.1.1/debian/ruby-rspec-rails/usr/share/rubygems-integration/all/gems/rspec-rails-7.1.1/lib/generators/rspec/channel/templates/channel_spec.rb.erb @@ -1337,781 +1373,943 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-rspec-rails-7.1.1/debian/ruby-rspec-rails/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-rspec-rails-7.1.1/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/i386-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/i386-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 17211 +Randomized with seed 15789 -redirect_to +ActionMailbox matchers + receive_inbound_email + fails when it doesn't receive inbound email + passes when negated when it doesn't receive inbound email + fails when negated when it receives inbound email + passes when it receives inbound email + +be_routable + provides a description with should - when assert_redirected_to passes - passes - when fails due to some other exception - raises that exception - when assert_redirected_to fails - uses failure message from assert_redirected_to + fails if routes do not recognize the path + passes if routes recognize the path with should_not - when assert_redirected_to passes - fails with custom failure message - when fails due to some other exception - raises that exception - when assert_redirected_to fails - passes + fails if routes recognize the path + passes if routes do not recognize the path + +be_new_record + a persisted record + fails + fails with custom failure message + a new record + passes + fails with custom failure message 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 + 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 -route_to - uses failure message from assert_recognizes - provides a description - delegates to assert_recognizes - with should - when assert_recognizes fails with an assertion failure - fails with message from assert_recognizes - when assert_recognizes passes +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 + +RSpec::Rails + has no malformed whitespace + +RSpec::Rails::FixtureFileUploadSupport + with fixture path set in spec + resolves fixture file + with fixture paths set in config + resolves fixture file + resolves supports `Pathname` objects + with fixture path not set + resolves fixture using relative path + +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 + the added #extra_params reader + raises an error when a user tries to mutate it + when accessors are already defined + does not redefine them + +RSpec::Rails::SystemExampleGroup + #driver + calls :driven_by method only once + sets :rack_test driver using by before_action + uses :selenium_chrome_headless driver by default + #after + sets the :extra_failure_lines metadata to an array of STDOUT lines (PENDING: Temporarily skipped with xit) + #method_name + converts special characters to underscores + handles long method names which include unicode characters + #metadata + fakes out the rails expected method + still raises correctly if you use it for something else + #take_screenshot + handles Rails calling metadata (PENDING: Temporarily skipped with xit) + 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: :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 the example group + applies configured `before(:context)` hooks with `type: :system` metadata + allows users to override the type + for an example group defined in a file in the .\spec\system\ directory + includes itself in the example group + allows users to override the type + tags groups in that directory with `type: :system` + 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: :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\system\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :system` + +RSpec::Rails::HelperExampleGroup + provides a controller_path based on the helper module's name + #helper + includes ApplicationHelper + returns the instance of AV::Base provided by AV::TC::Behavior + 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 + allows users to override the type + tags groups in that directory with `type: :helper` + 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\helpers\ directory + allows users to override the type + tags groups in that directory with `type: :helper` + applies configured `before(:context)` hooks with `type: :helper` metadata + includes itself in the example group + +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 include itself in the example group + does not tag groups in that directory with `type: :model` + 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` + 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 + applies configured `before(:context)` hooks with `type: :model` metadata + tags groups in that directory with `type: :model` + allows users to override the type + 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 + +Configuration + metadata `type: :controller` sets up controller example groups + adds 'lib/rspec/rails' to the backtrace exclusions + metadata `type: :routing` sets up routing example groups + metadata `type: :request` sets up request example groups + deprecates fixture_path = + metadata `type: :view` sets up view example groups + metadata `type: :feature` sets up feature example groups + fixture support is included with metadata `:use_fixtures` + fixture support is included with metadata `:use_fixtures` and deprecated fixture_path configured + deprecates fixture_path + metadata `type: :model` sets up model example groups + #filter_rails_from_backtrace! adds exclusion patterns for rails gems + metadata `type: :mailer` sets up mailer example groups + adds 'vendor/' to the backtrace exclusions + has a default #file_fixture_path of 'spec/fixtures/files' + metadata `type: :helper` sets up helper example groups + fixture support is included with metadata `:use_fixtures` and fixture_paths configured + 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) + #infer_spec_type_from_file_location! + sets the type to `:model` for file path `spec/models` + sets the type to `:view` for file path `spec/views` + sets the type to `:request` for file path `spec/requests` + 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 `:mailer` for file path `spec/mailers` + sets the type to `:routing` for file path `spec/routing` + sets the type to `:request` for file path `spec/api` + sets the type to `:helper` for file path `spec/helpers` + adds settings + `#global_fixtures?` is `false` by default + `#rendering_views?` is `false` by default + `#rendering_views` is `nil` by default + `#use_instantiated_fixtures?` is `false` by default + `#fixture_paths?` is `false` by default + `#infer_base_class_for_anonymous_controllers` is `true` by default + `#use_instantiated_fixtures?` is `false` by default + `#render_views?` is false by default + `#global_fixtures?` is `false` by default + `#infer_base_class_for_anonymous_controllers?` is `true` by default + `#use_transactional_fixtures` is `nil` by default + `#use_instantiated_fixtures` is `nil` by default + `#render_views` sets `render_views?` to `true` + `#global_fixtures` is `nil` by default + `#use_transactional_examples` is an alias for `use_transactional_fixtures` + `#fixture_paths` is `nil` by default + `#use_transactional_fixtures?` is `false` by default + `#infer_base_class_for_anonymous_controllers?` is `true` by default + `#fixture_paths?` is `false` by default + `#rendering_views?` is `false` by default + `#use_transactional_fixtures?` is `false` by default + `#use_instantiated_fixtures=` + changes `use_instantiated_fixtures?` to the true for a truthy value + sets `use_instantiated_fixtures` to the provided value + `#fixture_paths=` + changes `fixture_paths?` to the true for a truthy value + sets `fixture_paths` 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 + `#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 + +RSpec::Rails::MailboxExampleGroup + #have_failed + does not raise otherwise + raises on unfailed mail + 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 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 + 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 + applies configured `before(:context)` hooks with `type: :mailbox` metadata + includes itself in the example group + allows users to override the type + tags groups in that directory with `type: :mailbox` + 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 + #process + sends mail to the mailbox + #have_bounced + does not raise otherwise + raises on unbounced mail + #have_been_delivered + does not raise otherwise + raises on undelivered mail + +have_broadcasted_to matchers + have_broadcasted_to + has an appropriate description including the expected contents when qualified with `#with` + passes with at_most count when sent messages are under limit + passes with :twice count + generates failure message with at most hint + has an appropriate description including the matcher's description when qualified with `#with` and a composable matcher + throws descriptive error when no test adapter set + raises ArgumentError when no Proc passed to expect + passes with :once count + has an appropriate description when aliased + fails when too many messages broadcast + fails when message is not sent + fails when negated and message is sent + passes with :thrice count + generates failure message with at least hint + passes with provided data matchers + has an appropriate description + passes with at_least count when sent messages are over limit + has an appropriate description not mentioning the channel when qualified with `#from_channel` + has an appropriate description when stream name is passed as an array + fails with with block with incorrect data + generates failure message when data not match + reports correct number in fail error message + passes with provided data matchers with anything + counts only messages sent in block + passes when negated + passes with default messages count (exactly one) + passes when using symbol target + passes with provided data + passes when using alias + passes with multiple streams + when object is passed as first argument + when channel is present + passes + when channel can't be inferred + raises exception + +ActiveJob matchers + have_enqueued_job + fails with with block with incorrect data + fails when negated and several jobs enqueued + counts only jobs enqueued in block + passes with provided argument matchers + ignores undeserializable arguments + passes with Time + passes with :once count + passes with default jobs count (exactly one) + passes when using alias + passes with at_most count when enqueued jobs are under limit + accepts matchers as arguments to at_priority (PENDING: No reason given) + generates failure message with at most hint + has an enqueued job when providing at and there is no wait + fails when negated and job is enqueued + works with time offsets + passes with provided at time + passes with provided arguments + passes with ActiveSupport::TimeWithZone + passes with provided at date + passes deserialized arguments to with block + has an enqueued job when not providing at and there is a wait + raises ArgumentError when no Proc passed to expect + passes with provided priority number as string + accepts composable matchers as an at date + passes with provided queue name as string + passes with provided priority number as integer + passes with at_least count when enqueued jobs are over limit + does not have an enqueued job when providing at of :no_wait and there is a wait + warns when time offsets are inprecise + fails when job is not enqueued + fails when the priority wan't set + fails when the priority was set to a different value + reports correct number in fail error message + passes with job name + passes with provided queue name as symbol + passes with :twice count + only calls with block if other conditions are met + passes with multiple jobs + generates failure message with at least hint + throws descriptive error when no test adapter set + passes multiple arguments to with block + passes when negated + passes with provided arguments containing global id object + has an enqueued job when providing at of :no_wait and there is no wait + fails when too many jobs enqueued + generates failure message with all provided options + passes with :thrice count + when previously enqueued jobs were performed + counts newly enqueued jobs + verifying the arguments passed match the job's signature + fails if there is an arity mismatch + fails if there is a keyword/positional arguments mismatch + without rspec-mocks loaded + skips signature checks + with partial double verification disabled + skips signature checks + when partial double verification is temporarily suspended + skips signature checks + when job is retried + passes with reenqueued job + have_been_performed + passes with default jobs count (exactly one) + fails when job is not performed + counts all performed jobs + passes when negated + have_performed_job + passes with provided arguments containing global id object + generates failure message with all provided options + throws descriptive error when no test adapter set + generates failure message with at most hint + passes with job name + passes with :twice count + raises ArgumentError when no Proc passed to expect + passes when negated + only calls with block if other conditions are met + passes with provided queue name as string + passes with default jobs count (exactly one) + passes with multiple jobs + counts only jobs performed in block + passes multiple arguments to with block + fails with with block with incorrect data + passes with :once count + fails when too many jobs performed + passes with at_most count when performed jobs are under limit + passes deserialized arguments to with block + generates failure message with at least hint + fails when job is not performed + passes with :thrice count + passes with at_least count when performed jobs are over limit + reports correct number in fail error message + passes with provided at date + fails when negated and job is performed + passes with provided arguments + passes with provided argument matchers + passes with provided queue name as symbol + have_been_enqueued + fails when job is not enqueued + passes when negated + accepts composable matchers as an at date + fails when negated and several jobs enqueued + counts all enqueued jobs + passes with default jobs count (exactly one) + verifying the arguments passed match the job's signature + fails if there is a keyword/positional arguments mismatch + fails if there is an arity mismatch + with partial double verification disabled + skips signature checks + when partial double verification is temporarily suspended + skips signature checks + Active Job test helpers + does not raise that "assert_nothing_raised" is undefined + +have_stream matchers + have_stream_from + raises when no subscription started + fails with message + passes + raises ArgumentError when no subscription passed to expect + with composable matcher + fails with message passes - when assert_recognizes fails with a routing error - fails with message from assert_recognizes - when an exception is raised - raises that exception - with shortcut syntax - routes with one query parameter - routes with extra options - routes without extra options - routes with multiple query parameters - routes with nested query parameters - with should_not - when an exception is raised - raises that exception - when assert_recognizes fails with an assertion failure + with negated form + fails with message passes - when assert_recognizes fails with a routing error + have_streams + does not allow usage + raises when no subscription started + with negated form + raises ArgumentError when no subscription passed to expect + raises when no subscription started + passes with negated form + fails with message + have_stream_for + raises ArgumentError when no subscription passed to expect + fails with message + raises when no subscription started + passes + with negated form + fails with message passes - when assert_recognizes passes - fails with custom message + +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 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 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 + applies configured `before(:context)` hooks with `type: :channel` 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 + applies configured `before(:context)` hooks with `type: :channel` metadata + allows users to override the type + includes itself in the example group + tags groups in that directory with `type: :channel` have_http_status - 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 - raises an ArgumentError - describes responding by the symbolic and associated numeric status code - has a negated failure message reporting the expected status code - has a failure message reporting the expected and actual statuses + with general status code group :missing + 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 false for a response with a different code + returns true for a response with 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 - returns true for a response with the same code + has a failure message reporting it was given another type given an ActionDispatch::Response 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 given an ActionDispatch::TestResponse returns true for a response with the same code - matching a response - returns true for a response with the equivalent code - returns false for a response with a different code - 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 + given something that acts as a Capybara::Session + returns true for a response with the same code + http status :successful 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 an ActionDispatch::TestResponse + 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 a Rack::MockResponse + 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 - matching a response - returns true for a response with the same code - returns false for a response with a different code - with general status code group :missing + http status :success + behaves like does not use deprecated methods for Rails 5.2+ + does not use deprecated method for Rails >= 5.2 + with deprecated rack status codes + supports the original names + 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 an ActionDispatch::Response - returns true for a response with the same code + has a failure message reporting it was 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::TestResponse 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 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 general status code group :redirect + returns true for a response with code + with general status code group :not_found 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 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 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::TestResponse + returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code - with deprecated rack status codes - supports the original names - with general status code group :server_error - 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 false for a response with a different code - returns true for a response with code + 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 + matching a response + returns true for a response with the same code + returns false for a response with a different code 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 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 an ActionDispatch::Response - returns true for a response with the same code - with general status code group :not_found + with a nil status + raises an ArgumentError + with general status code group :success 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 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 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::TestResponse 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 + 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 - http status :error + 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 :not_found + with general status code group :redirect + 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 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 + has a negated 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 - given an ActionDispatch::Response - returns true for a response with the same code - with general status code group :successful + with general status code group :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 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 - 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 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 + given something that acts as a Capybara::Session returns true for a response with the same code + with general status code group :successful 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 :error - 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 - 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 + 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 + 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 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 :success + http status :not_found 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 + 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 given an ActionDispatch::TestResponse 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 - matching a response - returns true for a response with code - returns false for a response with a different code - http status :missing + 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 + 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 nil status - raises an ArgumentError - http status :successful + 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 + returns false given another type given an ActionDispatch::TestResponse returns true for a response with the same code - 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 something that acts as a Capybara::Session + given a Rack::MockResponse returns true for a response with the same code - http status :server_error + with a symbolic status + describes responding by the symbolic and associated numeric status code + raises an ArgumentError + has a negated failure message reporting the expected status code + has a failure message reporting the expected and actual statuses + matching a response + returns true for a response with the equivalent code + returns false for a response with a different 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 -have_stream matchers - have_stream_from - raises when no subscription started - fails with message - passes - raises ArgumentError when no subscription passed to expect - with negated form - fails with message - passes - with composable matcher - fails with message - passes - have_streams - does not allow usage - raises when no subscription started - with negated form - raises ArgumentError when no subscription passed to expect - fails with message - passes with negated form - raises when no subscription started - have_stream_for - fails with message - raises when no subscription started - passes - raises ArgumentError when no subscription passed to expect - with negated form - fails with message +be_valid matcher + includes a brief error message for the simplest implementation of validity + includes the error messages for simple implementations of error messages + includes the validation context 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 + uses a custom failure message if provided + includes a failure message for the negative case + +be_a_new matcher + #with + right class and new record + 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 + fails + passes + matcher is wrong type + fails + no attributes same + fails + one attribute same + passes + all attributes same + passes + one attribute value not the same + fails + wrong class and existing record + no attributes same + fails + one attribute value not the same + fails + all attributes same + fails + new record + wrong class + fails + right class passes + existing record + wrong class + fails + right class + fails -RSpec::Rails::SystemExampleGroup - hook order - calls Capybara.reset_sessions (TestUnit after_teardown) after any after hooks +send_email + with to_not + fails with a clear message when no emails were sent + fails for multiple matches + checks email sending by no params + fails with a clear message + fails with a clear message for negated version + checks email sending by all params together + with compound matching + works when both matchings pass + works when first matching fails + works when second 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 second matching fails + works when first matching fails + works when both matchings pass + +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: :system` - for an example group defined in a file in the .\spec\system\ directory - applies configured `before(:context)` hooks with `type: :system` metadata - includes itself in the example group - allows users to override the type - tags groups in that directory with `type: :system` - for an example group defined in a file in the ./spec/system/ directory + 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` 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: :system` - applies configured `before(:context)` hooks with `type: :system` metadata + for an example group defined in a file in the .\spec\routing\ directory + applies configured `before(:context)` hooks with `type: :routing` metadata + includes itself in the example group + allows users to override the type + 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: :system` - for an example group defined in a file in the ./spec/system/ directory - does not tag groups in that directory with `type: :system` + 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\system\ directory + 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: :system` - #after - sets the :extra_failure_lines metadata to an array of STDOUT lines (PENDING: Temporarily skipped with xit) - #metadata - fakes out the rails expected method - still raises correctly if you use it for something else - #driver - calls :driven_by method only once - uses :selenium_chrome_headless driver by default - sets :rack_test driver using by before_action - #take_screenshot - handles Rails calling metadata (PENDING: Temporarily skipped with xit) - #method_name - converts special characters to underscores - handles long method names which include unicode characters - -ActionMailbox matchers - receive_inbound_email - fails when negated when it receives inbound email - fails when it doesn't receive inbound email - passes when it receives inbound email - passes when negated when it doesn't receive inbound email - -ActiveModel support - with partial double verification enabled - allows you to stub instances of `ActiveModel` - allows you to stub `ActiveModel` - with partial double verification disabled - allows you to stub instances of `ActiveModel` - allows you to stub `ActiveModel` - -Configuration - fixture support is included with metadata `:use_fixtures` and fixture_paths configured - metadata `type: :controller` sets up controller example groups - metadata `type: :model` sets up model example groups - fixture support is included with metadata `:use_fixtures` - metadata `type: :mailer` sets up mailer example groups - deprecates fixture_path = - #filter_rails_from_backtrace! adds exclusion patterns for rails gems - metadata `type: :routing` sets up routing example groups - adds 'vendor/' to the backtrace exclusions - adds 'lib/rspec/rails' to the backtrace exclusions - has a default #file_fixture_path of 'spec/fixtures/files' - deprecates fixture_path - metadata `type: :helper` sets up helper example groups - metadata `type: :view` sets up view example groups - fixture support is included with metadata `:use_fixtures` and deprecated fixture_path configured - metadata `type: :feature` sets up feature example groups - metadata `type: :request` sets up request example groups - 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) - adds settings - `#global_fixtures?` is `false` by default - `#use_instantiated_fixtures?` is `false` by default - `#use_instantiated_fixtures` is `nil` by default - `#infer_base_class_for_anonymous_controllers` is `true` by default - `#rendering_views` is `nil` by default - `#render_views` sets `render_views?` to `true` - `#fixture_paths?` is `false` by default - `#fixture_paths` is `nil` by default - `#rendering_views?` is `false` by default - `#global_fixtures?` is `false` by default - `#rendering_views?` is `false` by default - `#use_instantiated_fixtures?` is `false` by default - `#use_transactional_examples` is an alias for `use_transactional_fixtures` - `#fixture_paths?` is `false` by default - `#render_views?` is false by default - `#use_transactional_fixtures?` is `false` by default - `#global_fixtures` is `nil` by default - `#infer_base_class_for_anonymous_controllers?` is `true` by default - `#use_transactional_fixtures` is `nil` by default - `#use_transactional_fixtures?` is `false` by default - `#infer_base_class_for_anonymous_controllers?` is `true` by default - `#global_fixtures=` - sets `global_fixtures` to the provided value - changes `global_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_paths=` - changes `fixture_paths?` to the true for a truthy value - sets `fixture_paths` to the provided value - `#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 - `#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 - #infer_spec_type_from_file_location! - sets the type to `:routing` for file path `spec/routing` - sets the type to `:helper` for file path `spec/helpers` - sets the type to `:feature` for file path `spec/features` - sets the type to `:request` for file path `spec/integration` - 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/requests` - sets the type to `:request` for file path `spec/api` - sets the type to `:view` for file path `spec/views` + does not tag groups in that directory with `type: :routing` + named routes + delegates them to the route_set RSpec::Rails::ViewRendering + default + ActionController::Metal + renders views + ActionController::Base + does not render views + does not render views in a nested group #render_views propagates to examples in nested groups properly - with no args + 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 in a nested group leaves the parent group as/is - passes override to children overrides the value inherited from the parent group - with false - tells examples not to render views + passes override to children with no args tells examples to render views with true tells examples to render views - with true + with false + tells examples not 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 when render_views? is false - supports manipulating view paths with arrays supports manipulating view paths + supports manipulating view paths with arrays supports manipulating view paths with resolvers with empty template resolver - works with custom resolvers works with strings + works with custom resolvers -RSpec::Rails::MinitestLifecycleAdapter - allows let variables named 'send' - invokes minitest lifecycle hooks at the appropriate times - -RSpec::Rails::FixtureFileUploadSupport - with fixture paths 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 - -send_email - fails with a clear message for negated version - fails for multiple matches - with to_not - checks email sending by no params - fails with a clear message when no emails were sent - fails with a clear message - checks email sending by all params together - with compound matching - works when second matching fails - works when first matching fails - works when both matchings pass - with a custom negated version defined - fails with a clear message - works with a negated version - with a compound negated version - works when second matching fails - works when first matching fails - works when both matchings pass - -RSpec::Rails::HelperExampleGroup - provides a controller_path based on the helper module's name - #helper - includes ApplicationHelper - returns the instance of AV::Base provided by AV::TC::Behavior - 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 - applies configured `before(:context)` hooks with `type: :helper` metadata - tags groups in that directory with `type: :helper` - 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: :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 - -be_a_new matcher - existing record - wrong class - fails - right class - fails - new record - wrong class - fails - right class - passes - #with - right class and new record - no attributes same - fails - all attributes same - passes - 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 - both matchers present in actual - passes - only one matcher present in actual - fails - one attribute value not the same - fails - wrong class and existing record - no attributes same - fails - all attributes same - fails - one attribute value not the same - fails - -RSpec::Rails::ViewSpecMethods - .add_extra_params_accessors_to - when accessors are not yet defined - adds them as instance methods - the added #extra_params reader - 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 defined - removes them - when accessors are not defined - does nothing - -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 - -should have_xxx - works with ActiveRecord::Associations::CollectionProxy - -have_broadcasted_to matchers - have_broadcasted_to - passes with multiple streams - passes when negated - passes with :once count - has an appropriate description when stream name is passed as an array - generates failure message with at most hint - throws descriptive error when no test adapter set - passes with at_most count when sent messages are under limit - reports correct number in fail error message - has an appropriate description - passes with provided data matchers - counts only messages sent in block - fails when message is not sent - has an appropriate description when aliased - passes with default messages count (exactly one) - has an appropriate description including the matcher's description when qualified with `#with` and a composable matcher - fails when too many messages broadcast - has an appropriate description including the expected contents when qualified with `#with` - passes with at_least count when sent messages are over limit - passes when using symbol target - passes with provided data - passes with provided data matchers with anything - has an appropriate description not mentioning the channel when qualified with `#from_channel` - passes with :thrice count - fails with with block with incorrect data - generates failure message with at least hint - passes when using alias - generates failure message when data not match - fails when negated and message is sent - raises ArgumentError when no Proc passed to expect - passes with :twice count - when object is passed as first argument - when channel is present - passes - when channel can't be inferred - raises exception - -render_template - with should_not - when fails with a redirect - gives informative error message - with a badly formatted error message - falls back to something informative +redirect_to + 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_template passes - fails with custom failure message - when assert_template fails + when assert_redirected_to passes + passes + with should_not + when assert_redirected_to fails passes - given a hash - delegates to assert_template - given a string - delegates to assert_template - given a symbol - converts to_s and 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 - -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 include itself in the example group - does not tag groups in that directory with `type: :job` - 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 - tags groups in that directory with `type: :job` - includes itself in the example group - allows users to override the type - 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 - tags groups in that directory with `type: :model` - allows users to override the type - for an example group defined in a file in the .\spec\models\ directory - tags groups in that directory with `type: :model` - includes itself in the example group - allows users to override the type - 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 include itself in the example group - does not tag groups in that directory 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 + when assert_redirected_to passes + fails with custom failure message -RSpec::Rails::MailboxExampleGroup - #have_been_delivered - does not raise otherwise - raises on undelivered mail - #have_bounced - raises on unbounced 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 - allows users to override the type - tags groups in that directory with `type: :mailbox` - includes itself in the example group - applies configured `before(:context)` hooks with `type: :mailbox` metadata - for an example group defined in a file in the ./spec/mailboxes/ directory - allows users to override the type - includes itself in the example group - applies configured `before(:context)` hooks with `type: :mailbox` metadata - tags groups in that directory with `type: :mailbox` - #have_failed - raises on unfailed mail - does not raise otherwise - #process - sends mail to the mailbox +RSpec::Rails::MinitestAssertionAdapter + exposes assert_send to host examples + exposes refute_in_delta to host examples + exposes refute_instance_of to host examples + exposes refute_empty to host examples + exposes assert_pattern to host examples + exposes refute_pattern to host examples + exposes refute_in_epsilon to host examples + exposes assert_in_delta to host examples + exposes assert_raises to host examples + exposes refute_respond_to to host examples + exposes assert_throws to host examples + exposes assert_nil to host examples + exposes assert_same to host examples + does not leak TestUnit specific methods into the AssertionDelegator + exposes assert to host examples + exposes refute_equal to host examples + exposes assert_path_exists to host examples + exposes assert_output to host examples + exposes assert_instance_of to host examples + exposes assert_silent to host examples + exposes refute_path_exists to host examples + exposes assert_predicate to host examples + exposes assert_operator to host examples + exposes assert_includes to host examples + does not expose Minitest's message method + exposes assert_in_epsilon to host examples + exposes refute_kind_of to host examples + exposes assert_empty to host examples + exposes assert_match to host examples + exposes assert_kind_of to host examples + exposes flunk to host examples + exposes refute_same to host examples + exposes refute to host examples + exposes assert_respond_to to host examples + exposes assert_equal to host examples + exposes refute_match to host examples + exposes refute_includes to host examples + does not expose internal methods of Minitest + exposes refute_nil to host examples + exposes refute_operator to host examples + exposes refute_predicate to host examples RSpec::Rails::ViewExampleGroup + #render + given no input + converts the filename without format into render options + converts the filename with variant into render options + converts the filename components into render options + sends render(:template => (described file)) to the view + given a hash + sends the hash as the first arg to render + given a string + sends string as the first arg to render + #template + delegates to #view + is deprecated + routes helpers collides with asset helpers + uses routes helpers + #params + delegates to the controller #_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 + with a nested _default_file_to_render + it returns the directory path 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 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 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 tags groups in that directory with `type: :view` - includes itself in the example group allows users to override the type + includes itself in the example group applies configured `before(:context)` hooks with `type: :view` metadata for an example group defined in a file in the .\spec\views\ directory applies configured `before(:context)` hooks with `type: :view` metadata @@ -2120,182 +2318,120 @@ includes itself in the example group #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 - #view - delegates to _view - is accessible to configuration-level hooks - #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 - sends render(:template => (described file)) to the view - converts the filename components into render options - converts the filename with variant into render options - converts the filename without format into render options + prepends an ActionView::FixtureResolver to the view path automatic inclusion of helpers operates normally when no helper with the same name exists - includes the helper with the same name includes the namespaced helper with the same name + includes the helper with the same name operates normally when the view has no path and there is a Helper class defined application helper exists includes the application helper no application helper exists operates normally - #params - delegates to the controller - routes helpers collides with asset helpers - uses routes helpers + #view + is accessible to configuration-level hooks + delegates to _view -be_valid matcher - includes a brief error message when error message is wrong arity - includes a brief error message for the simplest implementation of validity - includes the error messages for simple implementations of error messages - includes a failure message for the negative case - includes the validation context if provided - uses a custom failure message if provided - includes the error messages in the failure message - does not include the validation context if not provided +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 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 +render_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 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 due to some other exception + raises that exception + 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 assert_template fails + passes -ActiveJob matchers - Active Job test helpers - does not raise that "assert_nothing_raised" is undefined - have_enqueued_job - warns when time offsets are inprecise - accepts composable matchers as an at date - fails when the priority wan't set - generates failure message with at least hint - passes with :thrice count - has an enqueued job when not providing at and there is a wait - throws descriptive error when no test adapter set - passes with job name - passes with provided queue name as symbol - passes with ActiveSupport::TimeWithZone - fails when job is not enqueued - only calls with block if other conditions are met - passes with Time - accepts matchers as arguments to at_priority (PENDING: No reason given) - passes with provided priority number as integer - raises ArgumentError when no Proc passed to expect - fails when the priority was set to a different value - does not have an enqueued job when providing at of :no_wait and there is a wait - passes when using alias - passes with provided argument matchers - passes when negated - passes with provided priority number as string - passes with default jobs count (exactly one) - fails when negated and job is enqueued - reports correct number in fail error message - passes with :once count - fails when negated and several jobs enqueued - passes with provided queue name as string - passes with provided arguments - passes multiple arguments to with block - generates failure message with all provided options - passes with provided arguments containing global id object - passes with at_most count when enqueued jobs are under limit - passes with at_least count when enqueued jobs are over limit - passes with provided at time - passes deserialized arguments to with block - passes with :twice count - counts only jobs enqueued in block - passes with multiple jobs - has an enqueued job when providing at and there is no wait - generates failure message with at most hint - has an enqueued job when providing at of :no_wait and there is no wait - fails when too many jobs enqueued - ignores undeserializable arguments - fails with with block with incorrect data - passes with provided at date - works with time offsets - when previously enqueued jobs were performed - counts newly enqueued jobs - when job is retried - passes with reenqueued job - verifying the arguments passed match the job's signature - fails if there is an arity mismatch - fails if there is a keyword/positional arguments mismatch - when partial double verification is temporarily suspended - skips signature checks - without rspec-mocks loaded - skips signature checks - with partial double verification disabled - skips signature checks - have_been_enqueued - fails when negated and several jobs enqueued - accepts composable matchers as an at date - counts all enqueued jobs - passes when negated - fails when job is not enqueued - passes with default jobs count (exactly one) - verifying the arguments passed match the job's signature - fails if there is a keyword/positional arguments mismatch - fails if there is an arity mismatch - when partial double verification is temporarily suspended - skips signature checks - with partial double verification disabled - skips signature checks - have_performed_job - generates failure message with at least hint - passes when negated - passes with provided argument matchers - raises ArgumentError when no Proc passed to expect - passes multiple arguments to with block - throws descriptive error when no test adapter set - passes with multiple jobs - fails with with block with incorrect data - counts only jobs performed in block - reports correct number in fail error message - fails when job is not performed - passes with :twice count - generates failure message with at most hint - passes with provided arguments - passes with :once count - passes with job name - passes with provided arguments containing global id object - passes with default jobs count (exactly one) - only calls with block if other conditions are met - passes with provided queue name as string - passes with at_most count when performed jobs are under limit - passes with :thrice count - passes with provided queue name as symbol - passes with provided at date - passes deserialized arguments to with block - fails when too many jobs performed - passes with at_least count when performed jobs are over limit - fails when negated and job is performed - generates failure message with all provided options - have_been_performed - fails when job is not performed - passes with default jobs count (exactly one) - counts all performed jobs - passes when negated +RSpec::Rails::ControllerExampleGroup + includes routing matchers + handles methods invoked via `method_missing` that use keywords + 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 + controller name + 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 + sets the name as AnonymousController if it's anonymous + sets the name according to defined controller if it is not anonymous + #controller + delegates named route helpers to the underlying controller + calls NamedRouteCollection#route_defined? when it checks that given route is defined or not + with explicit subject + uses the specified subject instead of the controller + with implicit subject + doesn't cause let definition priority to be changed + uses the controller as the subject + 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 + tags groups in that directory with `type: :controller` + applies configured `before(:context)` hooks with `type: :controller` metadata + includes itself in the example group + 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 + #bypass_rescue + overrides the rescue_with_handler method on the controller to raise submitted error + 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 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 -RSpec::Rails - has no malformed whitespace +RSpec::Rails::RailsExampleGroup + supports tagged_logger + does not leak context between example groups + will not leak ActiveSupport::CurrentAttributes between examples RSpec::Rails::FeatureExampleGroup includes Rails route helpers - when nested inside a request example group - includes Rails route helpers #visit is resistant to load order errors raises an error informing about missing Capybara @@ -2303,349 +2439,249 @@ 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 + 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 + 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 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 + 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 - -RSpec::Rails::HelperExampleGroup::ClassMethods - determine_default_helper_class - the described is a class - returns nil - the described is a module - returns the module - -be_routable - provides a description - with should - passes if routes recognize the path - fails if routes do not recognize the path - with should_not - fails if routes recognize the path - passes if routes do not recognize the path - -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 configured - includes itself in example groups tagged with `type: :channel` - for an example group defined in a file in the .\spec\channels\ directory - applies configured `before(:context)` hooks with `type: :channel` metadata includes itself in the example group - 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 - applies configured `before(:context)` hooks with `type: :channel` metadata - includes itself in the example group - allows users to override the type - tags groups in that directory with `type: :channel` - 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 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 include itself in the example group + tags groups in that directory with `type: :feature` + applies configured `before(:context)` hooks with `type: :feature` metadata + when nested inside a request example group + includes Rails route helpers -RSpec::Rails::RailsExampleGroup - does not leak context between example groups - supports tagged_logger - will not leak ActiveSupport::CurrentAttributes between examples +RSpec::Rails::MinitestLifecycleAdapter + allows let variables named 'send' + invokes minitest lifecycle hooks at the appropriate times -RSpec::Rails::MinitestAssertionAdapter - exposes assert_throws to host examples - exposes refute_pattern to host examples - exposes refute_empty to host examples - exposes assert_path_exists to host examples - exposes refute_includes to host examples - exposes refute to host examples - exposes refute_in_epsilon to host examples - exposes assert_silent to host examples - exposes assert_operator to host examples - exposes assert_in_delta to host examples - does not leak TestUnit specific methods into the AssertionDelegator - exposes refute_operator to host examples - exposes assert_raises to host examples - does not expose internal methods of Minitest - exposes refute_respond_to to host examples - exposes assert_predicate to host examples - exposes refute_instance_of to host examples - does not expose Minitest's message method - exposes refute_predicate to host examples - exposes assert_equal to host examples - exposes assert to host examples - exposes flunk to host examples - exposes refute_same to host examples - exposes refute_in_delta to host examples - exposes assert_in_epsilon to host examples - exposes assert_match to host examples - exposes assert_kind_of to host examples - exposes assert_send to host examples - exposes assert_respond_to to host examples - exposes refute_nil to host examples - exposes assert_same to host examples - exposes refute_path_exists to host examples - exposes assert_pattern to host examples - exposes assert_includes to host examples - exposes assert_output to host examples - exposes assert_instance_of to host examples - exposes refute_equal to host examples - exposes refute_kind_of to host examples - exposes refute_match to host examples - exposes assert_empty to host examples - exposes assert_nil to host examples +ActiveModel support + with partial double verification enabled + allows you to stub instances of `ActiveModel` + allows you to stub `ActiveModel` + with partial double verification disabled + allows you to stub instances of `ActiveModel` + allows you to stub `ActiveModel` HaveEnqueuedMail matchers have_enqueued_mail - generates a failure message when given 0 argument + passes when a mailer method is called with deliver_later + passes with at_least when enqueued emails are over the limit passes when deliver_later is called with a queue argument - counts only emails enqueued in the block - passes when only given mailer argument passes with :twice count - passes with :once count - fails when too many emails are enqueued + ensure that the right mailer is enqueued + passes when deliver_later is called with a wait_until argument passes when negated - passes with multiple emails + generates a failure message when given 0 argument + generates a failure message with at most hint passes when negated with 0 arguments and a non-mailer job is enqueued - matches based on mailer class and method name - passes with at_most when enqueued emails are under the limit - passes multiple arguments to with block - generates a failure message with at least hint + generates a failure message with arguments + passes with multiple emails + passes when only given mailer argument fails when negated and mail is enqueued + passes with provided argument matchers + only calls with block if other conditions are met + fails with with block with incorrect data generates a failure message with at - throws descriptive error when no test adapter set - generates a failure message with at most hint - passes when using the have_enqueued_email alias - passes when using the enqueue_email alias - generates a failure message with arguments passes for mailer methods that accept arguments when the provided argument matcher is not used - passes with at_least when enqueued emails are over the limit - passes when a mailer method is called with deliver_later - passes with provided argument matchers - accepts composable matchers as an at date - passes when given 0 arguments - passes when negated with 0 arguments + generates a failure message with on_queue + passes with :once count + passes with :thrice count + passes when using the have_enqueued_email alias + passes when negated with only mailer arguments + fails when too many emails are enqueued + passes with at_most when enqueued emails are under the limit generates a failure message with unmatching enqueued mail jobs + generates a failure message with at least hint + throws descriptive error when no test adapter set + passes when using the enqueue_email alias passes for mailer methods with default arguments - passes when negated with only mailer arguments + generates a failure message when given only mailer argument + passes multiple arguments to with block generates a failure message - ensure that the right mailer is enqueued + passes when negated with 0 arguments + passes when given 0 arguments + accepts composable matchers as an at date passes when using the enqueue_mail alias - passes when deliver_later is called with a wait_until argument - generates a failure message with on_queue - passes with :thrice count - only calls with block if other conditions are met - fails with with block with incorrect data - generates a failure message when given only mailer argument - mailer job is unified - passes when given a global id serialized argument - passes when mixing parameterized and non-parameterized emails - fails if the arguments do not match the mailer method's signature - passes with provided argument matchers - matches arguments when mailer has only args - passes when mailer is parameterized - passes when using a mailer with `delivery_job` set to a sub class of `ActionMailer::DeliveryJob` + counts only emails enqueued in the block + matches based on mailer class and method name verifying the arguments passed match the mailer's signature fails if there is a mismatch - with partial double verification disabled - skips signature checks when partial double verification is temporarily suspended skips signature checks + with partial double verification disabled + skips signature checks when parameterized + fails if the arguments do not match the mailer method's signature (PENDING: This version of Rails does not support parameterized mailers) + passes when mixing parameterized and non-parameterized emails (PENDING: This version of Rails does not support parameterized mailers) passes when mailer is parameterized (PENDING: This version of Rails does not support parameterized mailers) passes with provided argument matchers (PENDING: This version of Rails does not support parameterized mailers) - passes when mixing parameterized and non-parameterized emails (PENDING: This version of Rails does not support parameterized mailers) - fails if the arguments do not match the mailer method's signature (PENDING: This version of Rails does not support parameterized mailers) - -have_rendered - given a string - delegates to assert_template - 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 symbol - converts to_s and 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 + mailer job is unified + passes when using a mailer with `delivery_job` set to a sub class of `ActionMailer::DeliveryJob` + passes when mailer is parameterized + matches arguments when mailer has only args + passes when given a global id serialized argument + passes with provided argument matchers + fails if the arguments do not match the mailer method's signature + passes when mixing parameterized and non-parameterized emails 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 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 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 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\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\api\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :request` 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 - includes itself in the example group 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\api\ directory + allows users to override the type + 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/requests/ directory + 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 - allows users to override the type 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\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 + for an example group defined in a file in the .\spec\api\ 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/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 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 - 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\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 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\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` - 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` ActiveSupport::Relation match_array matcher 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 fails if the scope encompasses fewer records than on the right hand side -be_new_record - a new record - fails with custom failure message - passes - a persisted record - fails - fails with custom failure message - -RSpec::Rails::RoutingExampleGroup - named routes - delegates them to the route_set +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: :routing` - 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` - 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: :routing` - 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 - tags groups in that directory with `type: :routing` + includes itself in example groups tagged with `type: :job` + for an example group defined in a file in the .\spec\jobs\ directory + applies configured `before(:context)` hooks with `type: :job` metadata includes itself in the example group - for an example group defined in a file in the ./spec/routing/ directory + tags groups in that directory with `type: :job` allows users to override the type - tags groups in that directory with `type: :routing` - applies configured `before(:context)` hooks with `type: :routing` metadata - includes itself in the example group - -RSpec::Rails::ControllerExampleGroup - handles methods invoked via `method_missing` that use keywords - includes routing matchers - 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 - 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 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 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 + for an example group defined in a file in the ./spec/jobs/ directory allows users to override the type + applies configured `before(:context)` hooks with `type: :job` metadata includes itself in the example group - tags groups in that directory 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 - includes itself in the example group - tags groups in that directory with `type: :controller` - allows users to override the type + 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: :controller` - for an example group defined in a file in the .\spec\controllers\ directory + 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: :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 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 - #bypass_rescue - overrides the rescue_with_handler method on the controller to raise submitted error - #controller - calls NamedRouteCollection#route_defined? when it checks that given route is defined or not - delegates named route helpers to the underlying controller - with implicit subject - uses the controller as the subject - doesn't cause let definition priority to be changed - controller name - sets name as AnonymousController if the controller is abstract - sets the name according to defined controller if it is not anonymous - 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 + +RSpec::Rails::SetupAndTeardownAdapter + .setup + 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 + +have_rendered + 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 assert_template passes + passes + when fails due to some other exception + raises that exception + 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 + when assert_template fails + passes + +should have_xxx + works with ActiveRecord::Associations::CollectionProxy + +route_to + provides a description + delegates to assert_recognizes + uses failure message from assert_recognizes + with should + when assert_recognizes passes + passes + 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 an exception is raised + raises that exception + with should_not + when assert_recognizes fails with an assertion failure + passes + when an exception is raised + raises that exception + when assert_recognizes passes + fails with custom message + when assert_recognizes fails with a routing error + passes + with shortcut syntax + routes with extra options + routes without extra options + routes with nested query parameters + routes with one query parameter + routes with multiple query parameters Pending: (Failures listed here are expected and do not affect your suite's status) @@ -2657,13 +2693,13 @@ # Temporarily skipped with xit # ./spec/rspec/rails/example/system_example_group_spec.rb:106 - 3) Configuration clears ActionMailer::Base::Deliveries after each example only has deliveries from this test (e.g. from email_2@example.com) + 3) 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 - 4) Configuration clears ActionMailer::Base::Deliveries after each example only has deliveries from this test (e.g. from email@example.com) + 4) 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 5) ActiveJob matchers have_enqueued_job accepts matchers as arguments to at_priority # No reason given @@ -2677,26 +2713,26 @@ # ./spec/spec_helper.rb:86:in `block (3 levels) in ' # ./spec/spec_helper.rb:80:in `block (2 levels) in ' - 6) HaveEnqueuedMail matchers have_enqueued_mail when parameterized passes when mailer is parameterized + 6) HaveEnqueuedMail matchers have_enqueued_mail when parameterized fails if the arguments do not match the mailer method's signature # This version of Rails does not support parameterized mailers - # ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb:416 + # ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb:439 - 7) HaveEnqueuedMail matchers have_enqueued_mail when parameterized passes with provided argument matchers + 7) HaveEnqueuedMail matchers have_enqueued_mail when parameterized passes when mixing parameterized and non-parameterized emails # This version of Rails does not support parameterized mailers - # ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb:429 + # ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb:422 - 8) HaveEnqueuedMail matchers have_enqueued_mail when parameterized passes when mixing parameterized and non-parameterized emails + 8) HaveEnqueuedMail matchers have_enqueued_mail when parameterized passes when mailer is parameterized # This version of Rails does not support parameterized mailers - # ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb:422 + # ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb:416 - 9) HaveEnqueuedMail matchers have_enqueued_mail when parameterized fails if the arguments do not match the mailer method's signature + 9) HaveEnqueuedMail matchers have_enqueued_mail when parameterized passes with provided argument matchers # This version of Rails does not support parameterized mailers - # ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb:439 + # ./spec/rspec/rails/matchers/have_enqueued_mail_spec.rb:429 -Finished in 2.97 seconds (files took 2.93 seconds to load) +Finished in 4.76 seconds (files took 4.69 seconds to load) 854 examples, 0 failures, 9 pending -Randomized with seed 17211 +Randomized with seed 15789 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -2730,12 +2766,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/48290/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/48290/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/121087 and its subdirectories -I: Current time: Wed Apr 15 01:47:29 -12 2026 -I: pbuilder-time-stamp: 1776260849 +I: removing directory /srv/workspace/pbuilder/48290 and its subdirectories +I: Current time: Thu Mar 13 21:25:45 +14 2025 +I: pbuilder-time-stamp: 1741850745