Diff of the two buildlogs: -- --- b1/build.log 2025-04-20 14:19:00.087648710 +0000 +++ b2/build.log 2025-04-20 14:21:37.196306842 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Apr 20 02:07:40 -12 2025 -I: pbuilder-time-stamp: 1745158060 +I: Current time: Mon Apr 21 04:19:09 +14 2025 +I: pbuilder-time-stamp: 1745158749 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -30,52 +30,84 @@ 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/23208/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/9966/tmp/hooks/D01_modify_environment starting +debug: Running on virt64b. +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 Apr 20 14:19 /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/9966/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/9966/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='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='armhf' + 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]="arm-unknown-linux-gnueabihf") + 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=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='5f1385b3403b4ac99996c85e752ed69a' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='23208' - PS1='# ' - PS2='> ' + INVOCATION_ID=b4a110b3564f40e1ad99da34435fae26 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + 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=9966 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.tGKnOpgV/pbuilderrc_nLL1 --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.tGKnOpgV/b1 --logfile b1/build.log ruby-rspec-rails_7.1.1-2.dsc' - SUDO_GID='113' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + 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.tGKnOpgV/pbuilderrc_Mxnr --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.tGKnOpgV/b2 --logfile b2/build.log ruby-rspec-rails_7.1.1-2.dsc' + SUDO_GID=113 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux wbq0 6.1.0-33-armmp #1 SMP Debian 6.1.133-1 (2025-04-10) armv7l GNU/Linux + Linux i-capture-the-hostname 6.1.0-33-arm64 #1 SMP Debian 6.1.133-1 (2025-04-10) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Mar 4 11:20 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/23208/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/9966/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -321,7 +353,7 @@ Get: 180 http://deb.debian.org/debian trixie/main armhf ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 181 http://deb.debian.org/debian trixie/main armhf ruby-sqlite3 armhf 1.7.3-1 [47.9 kB] Get: 182 http://deb.debian.org/debian trixie/main armhf ruby-warning all 1.3.0-1 [8968 B] -Fetched 38.7 MB in 4s (9251 kB/s) +Fetched 38.7 MB in 1s (29.6 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:armhf. (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 ... 19566 files and directories currently installed.) @@ -916,8 +948,8 @@ Setting up tzdata (2025b-2) ... Current default time zone: 'Etc/UTC' -Local time is now: Sun Apr 20 14:12:11 UTC 2025. -Universal Time is now: Sun Apr 20 14:12:11 UTC 2025. +Local time is now: Sun Apr 20 14:20:25 UTC 2025. +Universal Time is now: Sun Apr 20 14:20:25 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-websocket-extensions (0.1.5-2) ... @@ -1084,7 +1116,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/9966/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/9966/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 @@ -1117,7 +1153,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/d20250420-31275-yinvwt/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250421-15947-2bikkz/gemspec WARNING: open-ended dependency on actionpack (>= 7.0) is not recommended if actionpack is semantically versioned, use: add_runtime_dependency "actionpack", "~> 7.0" @@ -1135,7 +1171,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/d20250420-31275-yinvwt/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/d20250421-15947-2bikkz/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 @@ -1259,27 +1295,55 @@ 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/arm-linux-gnueabihf/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/arm-linux-gnueabihf/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 23670 +Randomized with seed 51903 -send_email - fails for multiple matches - with to_not - checks email sending by no params - fails with a clear message for negated version - fails with a clear message - checks email sending by all params together - fails with a clear message when no emails were sent - 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 both matchings pass - works when first matching fails +RSpec::Rails::HelperExampleGroup::ClassMethods + determine_default_helper_class + the described is a class + returns nil + the described is a module + returns the module + +RSpec::Rails + has no malformed whitespace + +ActionMailbox matchers + receive_inbound_email + passes when negated when it doesn't receive inbound email + fails when it doesn't receive inbound email + passes when it receives inbound email + fails when negated when it receives inbound email + +RSpec::Rails::FixtureSupport + handles namespaced fixtures + 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_tests set to false + does not wrap the test in a transaction + +ActiveSupport::Relation match_array matcher + fails if the scope encompasses fewer records than on the right hand side + fails if the scope encompasses more records than on the right hand side + verifies that the scope returns the records on the right hand side, regardless of order + +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::AssertionDelegator + delegates back to the including instance for methods the assertion module requires + provides a module that delegates assertion methods to an isolated class + does not delegate method_missing + +should have_xxx + works with ActiveRecord::Associations::CollectionProxy be_routable provides a description @@ -1287,8 +1351,48 @@ 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 + fails if routes recognize the path + +RSpec::Rails::SystemExampleGroup + #driver + sets :rack_test driver using by before_action + calls :driven_by method only once + uses :selenium_chrome_headless driver by default + 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 + applies configured `before(:context)` hooks with `type: :system` metadata + tags groups in that directory with `type: :system` + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :system` + for an example group defined in a file in the ./spec/system/ directory + does not include itself in the example group + does not tag groups in that directory with `type: :system` + for an example group defined in a file in the .\spec\system\ directory + does not tag groups in that directory with `type: :system` + does not include itself in the example group + #metadata + still raises correctly if you use it for something else + fakes out the rails expected method + #method_name + handles long method names which include unicode characters + converts special characters to underscores + #after + sets the :extra_failure_lines metadata to an array of STDOUT lines (PENDING: Temporarily skipped with xit) + #take_screenshot + handles Rails calling metadata (PENDING: Temporarily skipped with xit) + hook order + calls Capybara.reset_sessions (TestUnit after_teardown) after any after hooks RSpec::Rails::ViewSpecMethods .add_extra_params_accessors_to @@ -1299,116 +1403,276 @@ the added #extra_params reader raises an error when a user tries to mutate it .remove_extra_params_accessors_from - when accessors are not defined - does nothing when accessors are defined removes them + when accessors are not defined + does nothing + +RSpec::Rails::RequestExampleGroup + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :request` + for an example group defined in a file in the .\spec\integration\ directory + applies configured `before(:context)` hooks with `type: :request` metadata + includes itself in the example group + tags groups in that directory with `type: :request` + allows users to override the type + for an example group defined in a file in the ./spec/requests/ directory + 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 + tags groups in that directory with `type: :request` + includes itself in the example group + allows users to override the type + applies configured `before(:context)` hooks with `type: :request` metadata + for an example group defined in a file in the .\spec\requests\ directory + applies configured `before(:context)` hooks with `type: :request` metadata + allows users to override the type + 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 + applies configured `before(:context)` hooks with `type: :request` metadata + tags groups in that directory with `type: :request` + allows users to override the type + includes itself in the example group + for an example group defined in a file in the .\spec\api\ directory + allows users to override the type + applies configured `before(:context)` hooks with `type: :request` metadata + includes itself in the example group + tags groups in that directory with `type: :request` + 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\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 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 tag groups in that directory with `type: :request` + does not include itself in the example group + for an example group defined in a file in the ./spec/integration/ directory + does not include itself in the example group + does not tag groups in that directory with `type: :request` + for an example group defined in a file in the .\spec\requests\ directory + does not tag groups in that directory with `type: :request` + does not include itself in the example group + +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 + +RSpec::Rails::ViewExampleGroup + routes helpers collides with asset helpers + uses routes helpers + automatic inclusion of helpers + includes the helper with the same name + includes the namespaced helper with the same name + operates normally when the view has no path and there is a Helper class defined + operates normally when no helper with the same name exists + application helper exists + includes the application helper + no application helper exists + operates normally + #render + given a string + sends string as the first arg to render + given no input + converts the filename with variant into render options + sends render(:template => (described file)) to the view + converts the filename without format into render options + converts the filename components into render options + given a hash + sends the hash as the first arg to render + #template + delegates to #view + is deprecated + #_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 + #stub_template + caches FixtureResolver instances between example groups + caches FixtureResolver instances between examples + prepends an ActionView::FixtureResolver to the view 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 configured + includes itself in example groups tagged with `type: :view` + for an example group defined in a file in the .\spec\views\ directory + applies configured `before(:context)` hooks with `type: :view` metadata + allows users to override the type + includes itself in the example group + tags groups in that directory 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 + applies configured `before(:context)` hooks with `type: :view` metadata + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :view` + for an example group defined in a file in the ./spec/views/ directory + does not include itself in the example group + does not tag groups in that directory with `type: :view` + for an example group defined in a file in the .\spec\views\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :view` + #view + delegates to _view + is accessible to configuration-level hooks + #params + delegates to the controller + +redirect_to + with should + when fails due to some other exception + raises that exception + when assert_redirected_to fails + uses failure message from assert_redirected_to + when assert_redirected_to passes + passes + with should_not + when assert_redirected_to fails + passes + when assert_redirected_to passes + fails with custom failure message + when fails due to some other exception + raises that exception + +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 + 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 + given a symbol + converts to_s and delegates to assert_template + given a hash + delegates to assert_template ActiveJob matchers - have_enqueued_job + have_been_performed + passes with default jobs count (exactly one) + counts all performed jobs + passes when negated + fails when job is not performed + have_performed_job + passes with default jobs count (exactly one) + passes with provided queue name as string + passes with provided queue name as symbol + passes with job name + generates failure message with at most hint + passes with provided arguments passes with :twice count - passes with provided priority number as integer - passes with :once count - generates failure message with at least hint - passes with provided priority number as string + fails with with block with incorrect data + passes multiple arguments to with block + generates failure message with all provided options + fails when too many jobs performed passes with :thrice count - passes with provided argument matchers - accepts matchers as arguments to at_priority (PENDING: No reason given) + generates failure message with at least hint + passes when negated + passes with multiple jobs throws descriptive error when no test adapter set + counts only jobs performed in block + passes with :once count + fails when job is not performed + reports correct number in fail error message + fails when negated and job is performed + passes with at_least count when performed jobs are over limit + only calls with block if other conditions are met + passes with provided arguments containing global id object passes deserialized arguments to with block - passes with provided arguments + passes with at_most count when performed jobs are under limit + passes with provided argument matchers passes with provided at date - passes with ActiveSupport::TimeWithZone - fails when the priority was set to a different value - only calls with block if other conditions are met - passes with Time - passes with at_most count when enqueued jobs are under limit - passes with provided queue name as symbol - fails when job is not enqueued - fails when the priority wan't set - fails when too many jobs enqueued - passes with multiple jobs - passes with default jobs count (exactly one) raises ArgumentError when no Proc passed to expect - counts only jobs enqueued in block - ignores undeserializable arguments - fails with with block with incorrect data - passes multiple arguments to with block - accepts composable matchers as an at date - passes with at_least count when enqueued jobs are over limit - generates failure message with all provided options - reports correct number in fail error message - does not have an enqueued job when providing at of :no_wait and there is a wait + have_been_enqueued + passes with default jobs count (exactly one) passes when negated + fails when job is not enqueued fails when negated and several jobs enqueued - fails when negated and job is enqueued - passes with job name - works with time offsets - passes when using alias - generates failure message with at most hint - warns when time offsets are inprecise - passes with provided at time - passes with provided queue name as string - has an enqueued job when providing at of :no_wait and there is no wait - has an enqueued job when providing at and there is no wait - has an enqueued job when not providing at and there is a wait - passes with provided arguments containing global id object + counts all enqueued jobs + accepts composable matchers as an at date 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 + fails if there is a keyword/positional arguments mismatch with partial double verification disabled skips signature checks - without rspec-mocks loaded - skips signature checks when partial double verification is temporarily suspended skips signature checks - when job is retried - passes with reenqueued job - when previously enqueued jobs were performed - counts newly enqueued jobs Active Job test helpers does not raise that "assert_nothing_raised" is undefined - have_been_performed - passes when negated - counts all performed jobs - passes with default jobs count (exactly one) - fails when job is not performed - have_performed_job - passes with provided arguments containing global id object - passes with provided at date - passes when negated - passes with :thrice count + have_enqueued_job + fails when negated and several jobs enqueued + passes with :once count + passes with at_least count when enqueued jobs are over limit + has an enqueued job when providing at and there is no wait + passes with provided argument matchers + passes with provided queue name as symbol + passes with provided priority number as string + ignores undeserializable arguments generates failure message with all provided options - passes with provided queue name as string + passes with ActiveSupport::TimeWithZone + fails when the priority was set to a different value + passes with provided at date + passes with provided at time + works with time offsets only calls with block if other conditions are met - fails when too many jobs performed - throws descriptive error when no test adapter set - counts only jobs performed in block - passes with provided queue name as symbol + passes with multiple jobs + counts only jobs enqueued in block passes with default jobs count (exactly one) - fails when job is not performed - fails when negated and job is performed - passes with provided arguments - generates failure message with at most hint - reports correct number in fail error message + passes with provided queue name as string + has an enqueued job when providing at of :no_wait and there is no wait + passes when negated + passes with provided priority number as integer + accepts matchers as arguments to at_priority (PENDING: No reason given) + passes with :thrice count + fails when the priority wan't set + passes multiple arguments to with block + warns when time offsets are inprecise + passes when using alias + generates failure message with at least hint raises ArgumentError when no Proc passed to expect - passes with at_least count when performed jobs are over limit + passes with provided arguments containing global id object passes with :twice count + passes with Time + fails when job is not enqueued + fails when negated and job is enqueued + generates failure message with at most hint + fails when too many jobs enqueued + passes with provided arguments + does not have an enqueued job when providing at of :no_wait and there is a wait + has an enqueued job when not providing at and there is a wait + reports correct number in fail error message + throws descriptive error when no test adapter set + passes with at_most count when enqueued jobs are under limit fails with with block with incorrect data - generates failure message with at least hint - passes with :once count passes with job name - passes multiple arguments to with block passes deserialized arguments to with block - passes with multiple jobs - passes with provided argument matchers - passes with at_most count when performed jobs are under limit - have_been_enqueued - passes with default jobs count (exactly one) - counts all enqueued jobs - passes when negated - fails when negated and several jobs enqueued - fails when job is not enqueued accepts composable matchers as an at date verifying the arguments passed match the job's signature fails if there is an arity mismatch @@ -1417,445 +1681,222 @@ skips signature checks when partial double verification is temporarily suspended skips signature checks + without rspec-mocks loaded + skips signature checks + when previously enqueued jobs were performed + counts newly enqueued jobs + when job is retried + passes with reenqueued job -be_a_new matcher - new record - wrong class - fails - right class - passes - #with - wrong class and existing record - one attribute value not the same - fails - no attributes same - fails - all attributes same - fails - right class and new record - no attributes same - fails - all attributes same - passes - one attribute same - passes - one attribute value not the same - fails - with composable matchers - two attributes are composable matchers - only one matcher present in actual - fails - both matchers present in actual - passes - one attribute is a composable matcher - passes - fails - matcher is wrong type - fails - existing record - wrong class - fails - right class - fails - -RSpec::Rails::HelperExampleGroup - provides a controller_path based on the helper module's name - #helper - returns the instance of AV::Base provided by AV::TC::Behavior - includes ApplicationHelper - 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 - applies configured `before(:context)` hooks with `type: :helper` metadata - includes itself in the example group - allows users to override the type - tags groups in that directory with `type: :helper` - for an example group defined in a file in the ./spec/helpers/ directory - applies configured `before(:context)` hooks with `type: :helper` metadata - tags groups in that directory with `type: :helper` - includes itself in the example group - allows users to override the type - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :helper` - for an example group defined in a file in the ./spec/helpers/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :helper` - for an example group defined in a file in the .\spec\helpers\ directory - does not tag groups in that directory with `type: :helper` - does not include itself in the example group - -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 - -have_stream matchers - have_stream_from - raises ArgumentError when no subscription passed to expect - passes - fails with message - raises when no subscription started - with negated form - passes - fails with message - with composable matcher - passes - fails with message - have_streams - does not allow usage - raises when no subscription started - with negated form - fails with message - raises ArgumentError when no subscription passed to expect - passes with negated form - raises when no subscription started - have_stream_for - fails with message - passes - raises ArgumentError when no subscription passed to expect - raises when no subscription started - with negated form - passes - fails with message - -redirect_to - with should_not - when assert_redirected_to fails - passes - when fails due to some other exception - raises that exception - when assert_redirected_to passes - fails with custom failure message - with should - when assert_redirected_to fails - uses failure message from assert_redirected_to - when fails due to some other exception - raises that exception - when assert_redirected_to passes - passes - -RSpec::Rails::RoutingExampleGroup - named routes - delegates them to the route_set - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :routing` - for an example group defined in a file in the .\spec\routing\ directory - does not 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 - tags groups in that directory with `type: :routing` - applies configured `before(:context)` hooks with `type: :routing` metadata - includes itself in the example group - for an example group defined in a file in the ./spec/routing/ directory - applies configured `before(:context)` hooks with `type: :routing` metadata - tags groups in that directory with `type: :routing` - allows users to override the type - includes itself in the example group - -RSpec::Rails::MinitestLifecycleAdapter - allows let variables named 'send' - invokes minitest lifecycle hooks at the appropriate times - -RSpec::Rails::JobExampleGroup - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :job` - for an example group defined in a file in the .\spec\jobs\ directory - includes itself in the example group - applies configured `before(:context)` hooks with `type: :job` metadata - allows users to override the type - tags groups in that directory with `type: :job` - for an example group defined in a file in the ./spec/jobs/ directory - includes itself in the example group - applies configured `before(:context)` hooks with `type: :job` metadata - 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: :job` - for an example group defined in a file in the .\spec\jobs\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :job` - for an example group defined in a file in the ./spec/jobs/ directory - does not tag groups in that directory with `type: :job` - does not include itself in the example group - -ActionMailbox matchers - receive_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 - fails when negated when it receives inbound email - -RSpec::Rails::FeatureExampleGroup - includes Rails route helpers - #visit - raises an error informing about missing Capybara - is resistant to load order errors +RSpec::Rails::MailboxExampleGroup behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :feature` - for an example group defined in a file in the ./spec/features/ directory - includes itself in the example group - tags groups in that directory with `type: :feature` - allows users to override the type - applies configured `before(:context)` hooks with `type: :feature` metadata - for an example group defined in a file in the .\spec\features\ directory + 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 + tags groups in that directory with `type: :mailbox` allows users to override the type - tags groups in that directory with `type: :feature` - applies configured `before(:context)` hooks with `type: :feature` metadata includes itself in the example group - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :feature` - for an example group defined in a file in the .\spec\features\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :feature` - for an example group defined in a file in the ./spec/features/ directory - does not tag groups in that directory with `type: :feature` - does not include itself in the example group - when nested inside a request example group - includes Rails route helpers - -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 + for an example group defined in a file in the .\spec\mailboxes\ directory + applies configured `before(:context)` hooks with `type: :mailbox` metadata + tags groups in that directory with `type: :mailbox` allows users to override the type - applies configured `before(:context)` hooks with `type: :model` metadata includes itself in the example group - tags groups in that directory with `type: :model` 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 + 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: :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 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` + #process + sends mail to the mailbox + #have_bounced + raises on unbounced mail + does not raise otherwise + #have_failed + raises on unfailed mail + does not raise otherwise + #have_been_delivered + raises on undelivered mail + does not raise otherwise -should have_xxx - works with ActiveRecord::Associations::CollectionProxy +ActiveRecord support + with partial double verification enabled + allows you to stub abstract classes + allows you to stub `ActiveRecord::Base` + with partial double verification disabled + allows you to stub abstract classes + allows you to stub `ActiveRecord::Base` -RSpec::Rails::SystemExampleGroup - 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 - allows users to override the type - includes itself in the example group - tags groups in that directory 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 - allows users to override the type - tags groups in that directory with `type: :system` - includes itself in the example group - 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 tag groups in that directory with `type: :system` - does not include itself in the example group - hook order - calls Capybara.reset_sessions (TestUnit after_teardown) after any after hooks - #driver - calls :driven_by method only once - sets :rack_test driver using by before_action - uses :selenium_chrome_headless driver by default - #take_screenshot - handles Rails calling metadata (PENDING: Temporarily skipped with xit) - #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 - still raises correctly if you use it for something else - fakes out the rails expected method +be_valid matcher + includes a failure message for the negative case + includes a brief error message when error message is wrong arity + includes a brief error message for the simplest implementation of validity + does not include the validation context if not provided + uses a custom failure message if provided + includes the error messages for simple implementations of error messages + includes the error messages in the failure message + includes the validation context if provided 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 general status code group :error + with general status code group :successful behaves like supports different response instances - has a negated failure message reporting it was given another type has a failure message reporting it was given another type returns false given another type - given 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 - given an ActionDispatch::Response - returns true for a response with the same code - behaves like status code matcher - describes behaves like status code matcher - has a failure message reporting the expected and actual status codes - has a negated failure message reporting the expected and actual status codes - matching a response - returns true for a response with code - returns false for a response with a different code - with a symbolic status - describes responding by the symbolic and associated numeric status code - has a failure message reporting the expected and actual statuses - raises an ArgumentError - has a negated failure message reporting the expected status code - matching a response - returns false for a response with a different code - returns true for a response with the equivalent code - behaves like supports different response instances - returns false given another type - has a failure message reporting it was given another type has a negated failure message reporting it was given another type given an ActionDispatch::TestResponse returns true for a response with the same code - given something that acts as a Capybara::Session + given an ActionDispatch::Response returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - given an ActionDispatch::Response + given something that acts as a Capybara::Session returns true for a response with the same code - with general status code group :success 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 + 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 + returns true for a response with code + with a nil status + raises an ArgumentError + http status :not_found behaves like supports different response instances returns false given another type has a negated failure message reporting it was given another type has a failure message reporting it was given another type + given a Rack::MockResponse + returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code - given a Rack::MockResponse - returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code - http status :successful + with general status code group :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 - given a Rack::MockResponse + given an ActionDispatch::TestResponse returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - given an ActionDispatch::TestResponse + given a Rack::MockResponse returns true for a response with the same code - http status :server_error + 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 false for a response with a different code + returns true for a response with code + with general status code group :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 + has a negated failure message reporting it was given another type returns false given another type given a Rack::MockResponse returns true for a response with the same code + given an ActionDispatch::TestResponse + returns true for a response with the same code given 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 + 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 false for a response with a different code + returns true for a response with code http status :error behaves like does not use deprecated methods for Rails 5.2+ does not use deprecated method for Rails >= 5.2 - with deprecated rack status codes - supports the original names - with general status code group :successful + with general status code group :success behaves like supports different response instances + returns false given another type has a negated failure message reporting it was given another type has a failure message reporting it was given another type - returns false given another type given something that acts as a Capybara::Session returns true for a response with the same code + given an ActionDispatch::TestResponse + returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code given a Rack::MockResponse returns true for a response with the same code - given 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 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 false for a response with a different code returns true for a response with code - with a numeric status code - has a negated failure message reporting the expected status code - has a failure message reporting the expected and actual status codes - describes responding with the numeric status code + returns false for a response with a different code + with general status code group :redirect 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 - given something that acts as a Capybara::Session - returns true for a response with the same code + has a negated failure message reporting it was given another type + has a failure message reporting it was given another type given an ActionDispatch::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 - matching a response - returns false for a response with a different code - returns true for a response with the same code - http status :missing - behaves like does not use deprecated methods for Rails 5.2+ - does not use deprecated method for Rails >= 5.2 + given something that acts as a Capybara::Session + returns true for a response with the same code + behaves like status code matcher + has a failure message reporting the expected and actual status codes + 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 with general status code group :server_error 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 an ActionDispatch::Response + given an ActionDispatch::TestResponse returns true for a response with the same code - given a Rack::MockResponse + given an ActionDispatch::Response returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code - given an ActionDispatch::TestResponse + given a Rack::MockResponse returns true for a response with the same code behaves like status code matcher describes behaves like status code matcher - has a failure message reporting the expected and actual status codes has a negated failure message reporting the expected and actual status codes + has a failure message reporting the expected and actual status codes matching a response returns true for a response with code returns false for a response with a different code - with general status code group :not_found + http status :successful + 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 + 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 + with general status code group :missing behaves like status code matcher - describes behaves like status code matcher has a negated failure message reporting the expected and actual status codes + describes behaves like status code matcher has a failure message reporting the expected and actual status codes matching a response returns false for a response with a different code @@ -1864,714 +1905,717 @@ has a negated failure message reporting it was given another type has a failure message reporting it was given another type returns false given another type - given a Rack::MockResponse - returns true for a response with the same code - given an ActionDispatch::TestResponse - returns true for a response with the same code given 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 :not_found + 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 + 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 + 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 - 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 + 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 + given an ActionDispatch::Response returns true for a response with the same code - with general status code group :redirect + 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 - given a Rack::MockResponse + has a failure message reporting it was given another type + returns false given another type + given something that acts as a Capybara::Session returns true for a response with the same code given an ActionDispatch::Response returns true for a response with the same code - given something that acts as a Capybara::Session - returns true for a response with the same code given an ActionDispatch::TestResponse returns true for a response with the same code - 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 false for a response with a different code - returns true for a response with code - with a nil status + given a Rack::MockResponse + returns true for a response with the same code + with deprecated rack status codes + supports the original names + with a symbolic status + describes responding by the symbolic and associated numeric status code raises an ArgumentError - with general status code group :missing - behaves like status code matcher - describes behaves like status code matcher - has a negated failure message reporting the expected and actual status codes - has a failure message reporting the expected and actual status codes - matching a response - returns true for a response with code - returns false for a response with a different code + has a failure message reporting the expected and actual statuses + has a negated failure message reporting the expected status code + matching a response + returns false for a response with a different code + returns true for a response with the equivalent code behaves like supports different response instances - has a negated failure message reporting it was given another type has a failure message reporting it was given another type returns false given another type + has a negated failure message reporting it was given another type given an ActionDispatch::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 a Rack::MockResponse + returns true for a response with the same code given something that acts as a Capybara::Session returns true for a response with the same code + http status :success + behaves like does not use deprecated methods for Rails 5.2+ + does not use deprecated method for Rails >= 5.2 + http status :missing + behaves like does not use deprecated methods for Rails 5.2+ + does not use deprecated method for Rails >= 5.2 -route_to - provides a description - delegates to assert_recognizes - uses failure message from assert_recognizes - with shortcut syntax - routes without extra options - routes with nested query parameters - routes with one query parameter - routes with multiple query parameters - routes with extra options - with should_not - when assert_recognizes fails with an assertion failure - passes - when assert_recognizes passes - fails with custom message - when assert_recognizes fails with a routing error +be_a_new matcher + existing record + right class + fails + wrong class + fails + new record + right class passes - when an exception is raised - raises that exception + wrong class + fails + #with + right class and new record + all attributes same + passes + with composable matchers + two attributes are composable matchers + both matchers present in actual + passes + only one matcher present in actual + fails + one attribute is a composable matcher + passes + fails + matcher is wrong type + fails + one attribute same + passes + one attribute value not the same + fails + no attributes same + fails + wrong class and existing record + one attribute value not the same + fails + no attributes same + fails + all attributes same + fails + +ActiveModel support + with partial double verification enabled + allows you to stub `ActiveModel` + allows you to stub instances of `ActiveModel` + with partial double verification disabled + allows you to stub `ActiveModel` + allows you to stub instances of `ActiveModel` + +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 + tells examples to render views + in a nested group + passes override to children + leaves the parent group as/is + overrides the value inherited from the parent group + with no args + tells examples to render views + with true + tells examples to render views + 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 true + tells examples to render views + when render_views? is false + supports manipulating view paths with arrays + supports manipulating view paths + supports manipulating view paths with resolvers + with empty template resolver + works with strings + works with custom resolvers + +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 include itself in the example group + does not tag groups in that directory with `type: :channel` + 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 + tags groups in that directory with `type: :channel` + applies configured `before(:context)` hooks with `type: :channel` metadata + allows users to override the type + includes itself in the example group + for an example group defined in a file in the .\spec\channels\ directory + allows users to override the type + includes itself in the example group + tags groups in that directory with `type: :channel` + applies configured `before(:context)` hooks with `type: :channel` metadata + +have_rendered + given a string + delegates to assert_template + given a symbol + converts to_s and delegates to assert_template with should - when assert_recognizes fails with an assertion failure - fails with message from assert_recognizes - when assert_recognizes fails with a routing error - fails with message from assert_recognizes - when assert_recognizes passes + 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 - when an exception is raised + with should_not + when fails with a redirect + gives informative error message + with a badly formatted error message + falls back to something informative + when assert_template fails + passes + when fails due to some other exception raises that exception + when assert_template passes + fails with custom failure message + given a hash + delegates to assert_template -RSpec::Rails::RailsExampleGroup - does not leak context between example groups - supports tagged_logger - will not leak ActiveSupport::CurrentAttributes between examples +have_broadcasted_to matchers + have_broadcasted_to + passes with default messages count (exactly one) + has an appropriate description + passes with :thrice count + fails when too many messages broadcast + fails when message is not sent + has an appropriate description including the expected contents when qualified with `#with` + passes with :once count + fails when negated and message is sent + throws descriptive error when no test adapter set + generates failure message with at most hint + passes with provided data matchers + passes with provided data matchers with anything + passes with multiple streams + fails with with block with incorrect data + reports correct number in fail error message + generates failure message with at least hint + passes with provided data + generates failure message when data not match + passes when using alias + has an appropriate description when stream name is passed as an array + has an appropriate description including the matcher's description when qualified with `#with` and a composable matcher + has an appropriate description not mentioning the channel when qualified with `#from_channel` + passes with at_least count when sent messages are over limit + raises ArgumentError when no Proc passed to expect + passes with at_most count when sent messages are under limit + passes when using symbol target + passes when negated + has an appropriate description when aliased + passes with :twice count + counts only messages sent in block + when object is passed as first argument + when channel can't be inferred + raises exception + when channel is present + passes + +send_email + fails with a clear message for negated version + with to_not + checks email sending by all params together + checks email sending by no params + fails with a clear message + fails with a clear message when no emails were sent + fails for multiple matches + with compound matching + works when both matchings pass + works when first matching fails + works when second matching fails + with a custom negated version defined + fails with a clear message + works with a negated version + with a compound negated version + works when both matchings pass + works when second matching fails + works when first matching fails RSpec::Rails::ControllerExampleGroup includes routing matchers handles methods invoked via `method_missing` that use keywords + #controller + delegates named route helpers to the underlying controller + calls NamedRouteCollection#route_defined? when it checks that given route is defined or not + in a namespace + controller name + sets the name according to the defined controller namespace if it is not anonymous + sets the name as 'AnonymousController' if the controller is abstract behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :controller` - for an example group defined in a file in the ./spec/controllers/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :controller` - for an example group defined in a file in the .\spec\controllers\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :controller` when `infer_spec_type_from_file_location!` is configured includes itself in example groups tagged with `type: :controller` for an example group defined in a file in the ./spec/controllers/ directory - applies configured `before(:context)` hooks with `type: :controller` metadata tags groups in that directory with `type: :controller` + applies configured `before(:context)` hooks with `type: :controller` metadata includes itself in the example group allows users to override the type for an example group defined in a file in the .\spec\controllers\ directory - includes itself in the example group - tags groups in that directory with `type: :controller` applies configured `before(:context)` hooks with `type: :controller` metadata + tags groups in that directory with `type: :controller` allows users to override the type - 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 - #bypass_rescue - overrides the rescue_with_handler method on the controller to raise submitted error + includes itself in the example group + 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 include itself in the example group + does not tag groups in that directory with `type: :controller` with explicit subject uses the specified subject instead of the controller controller name + sets the name as AnonymousController if it's anonymous + sets the name according to defined controller if it is not anonymous sets name as AnonymousController if defined as ApplicationController sets name as AnonymousController if it inherits outer group's anonymous controller - sets the name as AnonymousController if it's anonymous sets name as AnonymousController if the controller is abstract - sets the name according to defined controller if it is not anonymous with implicit subject doesn't cause let definition priority to be changed uses the controller as the subject - in a namespace - controller name - sets the name according to the defined controller namespace if it is not anonymous - sets the name as 'AnonymousController' if the controller is abstract - #controller - calls NamedRouteCollection#route_defined? when it checks that given route is defined or not - delegates named route helpers to the underlying controller - -be_new_record - a new record - passes - fails with custom failure message - a persisted record - fails - fails with custom failure message - -RSpec::Rails - has no malformed whitespace - -RSpec::Rails::HelperExampleGroup::ClassMethods - determine_default_helper_class - the described is a module - returns the module - the described is a class - returns nil + with inferred anonymous controller + defaults to inferring anonymous controller class + when infer_base_class_for_anonymous_controllers is true + infers the anonymous controller class + infers the anonymous controller class when no ApplicationController is present + when infer_base_class_for_anonymous_controllers is false + sets the anonymous controller class to ApplicationController + sets the anonymous controller class to ActiveController::Base when no ApplicationController is present + #bypass_rescue + overrides the rescue_with_handler method on the controller to raise submitted error -Configuration - has a default #file_fixture_path of 'spec/fixtures/files' - fixture support is included with metadata `:use_fixtures` - metadata `type: :controller` sets up controller example groups - metadata `type: :mailer` sets up mailer example groups - deprecates fixture_path - fixture support is included with metadata `:use_fixtures` and fixture_paths configured - adds 'lib/rspec/rails' to the backtrace exclusions - fixture support is included with metadata `:use_fixtures` and deprecated fixture_path configured - metadata `type: :helper` sets up helper example groups - metadata `type: :routing` sets up routing example groups - adds 'vendor/' to the backtrace exclusions - metadata `type: :view` sets up view example groups - deprecates fixture_path = - metadata `type: :feature` sets up feature example groups - metadata `type: :model` sets up model example groups - #filter_rails_from_backtrace! adds exclusion patterns for rails gems - 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 - `#rendering_views?` is `false` by default - `#rendering_views?` is `false` by default - `#fixture_paths` is `nil` by default - `#use_instantiated_fixtures?` is `false` by default - `#infer_base_class_for_anonymous_controllers?` is `true` by default - `#infer_base_class_for_anonymous_controllers` is `true` by default - `#use_transactional_examples` is an alias for `use_transactional_fixtures` - `#use_transactional_fixtures?` is `false` by default - `#use_instantiated_fixtures?` is `false` by default - `#fixture_paths?` is `false` by default - `#use_instantiated_fixtures` is `nil` by default - `#infer_base_class_for_anonymous_controllers?` is `true` by default - `#global_fixtures` is `nil` by default - `#render_views` sets `render_views?` to `true` - `#use_transactional_fixtures?` is `false` by default - `#render_views?` is false by default - `#use_transactional_fixtures` is `nil` by default - `#global_fixtures?` is `false` by default - `#global_fixtures?` is `false` by default - `#rendering_views` is `nil` by default - `#fixture_paths?` is `false` by default - `#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 - `#use_instantiated_fixtures=` - changes `use_instantiated_fixtures?` to the true for a truthy value - sets `use_instantiated_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 - `#global_fixtures=` - changes `global_fixtures?` to the true for a truthy value - sets `global_fixtures` to the provided value - `#rendering_views=` - sets `rendering_views` to the provided value - changes `rendering_views?` to the true for a truthy value - `#fixture_paths=` - changes `fixture_paths?` to the true for a truthy value - sets `fixture_paths` to the provided value - #infer_spec_type_from_file_location! - sets the type to `:model` for file path `spec/models` - sets the type to `:routing` for file path `spec/routing` - sets the type to `:request` for file path `spec/requests` - sets the type to `:feature` for file path `spec/features` - sets the type to `:request` for file path `spec/api` - sets the type to `:request` for file path `spec/integration` - sets the type to `:controller` for file path `spec/controllers` - sets the type to `:helper` for file path `spec/helpers` - sets the type to `:mailer` for file path `spec/mailers` - sets the type to `:view` for file path `spec/views` +RSpec::Rails::RailsExampleGroup + does not leak context between example groups + supports tagged_logger + will not leak ActiveSupport::CurrentAttributes between examples -RSpec::Rails::FixtureFileUploadSupport - with fixture path set in spec - resolves fixture file - with fixture path not set - resolves fixture using relative path - with fixture paths set in config - resolves fixture file - resolves supports `Pathname` objects +RSpec::Rails::JobExampleGroup + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :job` + for an example group defined in a file in the .\spec\jobs\ directory + applies configured `before(:context)` hooks with `type: :job` metadata + includes itself in the example group + tags groups in that directory with `type: :job` + allows users to override the type + for an example group defined in a file in the ./spec/jobs/ directory + allows users to override the type + applies configured `before(:context)` hooks with `type: :job` metadata + tags groups in that directory with `type: :job` + includes itself in the example group + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :job` + for an example group defined in a file in the .\spec\jobs\ directory + does not include itself in the example group + does not tag groups in that directory with `type: :job` + for an example group defined in a file in the ./spec/jobs/ directory + does not tag groups in that directory with `type: :job` + does not include itself in the example group -RSpec::Rails::MailboxExampleGroup - #have_bounced - does not raise otherwise - raises on unbounced mail - #have_been_delivered - raises on undelivered mail - does not raise otherwise - #process - sends mail to the mailbox - #have_failed - raises on unfailed mail - does not raise otherwise +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: :mailbox` - for an example group defined in a file in the ./spec/mailboxes/ directory - does not tag groups in that directory with `type: :mailbox` + includes itself in example groups tagged with `type: :model` + for an example group defined in a file in the ./spec/models/ directory + does not tag groups in that directory with `type: :model` does not include itself in the example group - for an example group defined in a file in the .\spec\mailboxes\ directory - does not tag groups in that directory with `type: :mailbox` + 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: :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 example groups tagged with `type: :model` + for an example group defined in a file in the .\spec\models\ directory + tags groups in that directory with `type: :model` + applies configured `before(:context)` hooks with `type: :model` metadata 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 - applies configured `before(:context)` hooks with `type: :mailbox` metadata + allows users to override the type + for an example group defined in a file in the ./spec/models/ directory includes itself in the example group - tags groups in that directory with `type: :mailbox` + applies configured `before(:context)` hooks with `type: :model` metadata + tags groups in that directory with `type: :model` allows users to override the type -RSpec::Rails::RequestExampleGroup +RSpec::Rails::HelperExampleGroup + provides a controller_path based on the helper module's name behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :request` - for an example group defined in a file in the ./spec/requests/ directory - includes itself in the example group - tags groups in that directory with `type: :request` - applies configured `before(:context)` hooks with `type: :request` metadata - allows users to override the type - for an example group defined in a file in the .\spec\api\ directory - applies configured `before(:context)` hooks with `type: :request` metadata - tags groups in that directory with `type: :request` - allows users to override the type - includes itself in the example group - for an example group defined in a file in the .\spec\requests\ directory - includes itself in the example group - allows users to override the type - 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/integration/ directory - tags groups in that directory with `type: :request` - allows users to override the type - applies configured `before(:context)` hooks with `type: :request` metadata + includes itself in example groups tagged with `type: :helper` + for an example group defined in a file in the ./spec/helpers/ directory includes itself in the example group - for an example group defined in a file in the .\spec\integration\ directory - tags groups in that directory with `type: :request` - applies configured `before(:context)` hooks with `type: :request` metadata allows users to override the type + applies configured `before(:context)` hooks with `type: :helper` metadata + tags groups in that directory with `type: :helper` + for an example group defined in a file in the .\spec\helpers\ directory includes itself in the example group - for an example group defined in a file in the ./spec/api/ directory + tags groups in that directory with `type: :helper` + applies configured `before(:context)` hooks with `type: :helper` metadata allows users to override the type - applies configured `before(:context)` hooks with `type: :request` metadata - tags groups in that directory with `type: :request` - includes itself in the example group when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :request` - for an example group defined in a file in the ./spec/api/ directory - does not tag groups in that directory with `type: :request` - does not include itself in the example group - for an example group defined in a file in the .\spec\api\ directory - does not tag groups in that directory with `type: :request` - does not include itself in the example group - for an example group defined in a file in the .\spec\integration\ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the ./spec/integration/ directory - does not include itself in the example group - does not tag groups in that directory with `type: :request` - for an example group defined in a file in the ./spec/requests/ directory + includes itself in example groups tagged with `type: :helper` + for an example group defined in a file in the ./spec/helpers/ directory does not include itself in the example group - does not tag groups in that directory with `type: :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 tag groups in that directory with `type: :helper` + for an example group defined in a file in the .\spec\helpers\ directory does not include itself in the example group + does not tag groups in that directory with `type: :helper` + #helper + includes ApplicationHelper + returns the instance of AV::Base provided by AV::TC::Behavior HaveEnqueuedMail matchers have_enqueued_mail - fails when too many emails are enqueued - passes when negated with 0 arguments - passes when given 0 arguments - passes when deliver_later is called with a queue argument - generates a failure message with on_queue - generates a failure message with at - counts only emails enqueued in the block - passes with :thrice count - fails when negated and mail is enqueued - generates a failure message when given 0 argument + passes when only given mailer argument + generates a failure message with arguments passes with at_most when enqueued emails are under the limit - passes with at_least when enqueued emails are over the limit - generates a failure message with unmatching enqueued mail jobs - passes when using the enqueue_email alias - passes for mailer methods with default arguments + generates a failure message when given 0 argument + matches based on mailer class and method name only calls with block if other conditions are met - passes when negated with only mailer arguments - passes with multiple emails - generates a failure message with at most hint - ensure that the right mailer is enqueued - passes when using the have_enqueued_email alias + passes with provided argument matchers + passes with :once count + generates a failure message with at least hint + passes with :thrice count + passes for mailer methods with default arguments + generates a failure message with unmatching enqueued mail jobs + passes when a mailer method is called with deliver_later fails with with block with incorrect data + fails when too many emails are enqueued + generates a failure message accepts composable matchers as an at date + counts only emails enqueued in the block + passes with :twice count generates a failure message when given only mailer argument - passes when negated - passes when negated with 0 arguments and a non-mailer job is enqueued - passes with :once count - passes when a mailer method is called with deliver_later - matches based on mailer class and method name - throws descriptive error when no test adapter set + passes when using the enqueue_email alias passes multiple arguments to with block - generates a failure message with arguments + passes when using the enqueue_mail alias + throws descriptive error when no test adapter set + ensure that the right mailer is enqueued + passes with at_least when enqueued emails are over the limit + passes when using the have_enqueued_email alias + generates a failure message with at + passes with multiple emails + generates a failure message with at most hint + passes when negated + passes when deliver_later is called with a queue argument passes for mailer methods that accept arguments when the provided argument matcher is not used - generates a failure message with at least hint + fails when negated and mail is enqueued + passes when negated with 0 arguments and a non-mailer job is enqueued + passes when negated with 0 arguments + passes when negated with only mailer arguments passes when deliver_later is called with a wait_until argument - passes when only given mailer argument - passes with :twice count - passes with provided argument matchers - generates a failure message - passes when using the enqueue_mail alias + passes when given 0 arguments + generates a failure message with on_queue mailer job is unified - passes with provided argument matchers + passes when given a global id serialized argument passes when mixing parameterized and non-parameterized emails passes when mailer is parameterized - passes when given a global id serialized argument - matches arguments when mailer has only args - passes when using a mailer with `delivery_job` set to a sub class of `ActionMailer::DeliveryJob` fails if the arguments do not match the mailer method's signature - verifying the arguments passed match the mailer's signature - fails if there is a mismatch - when partial double verification is temporarily suspended - skips signature checks - with partial double verification disabled - skips signature checks + passes with provided argument matchers + passes when using a mailer with `delivery_job` set to a sub class of `ActionMailer::DeliveryJob` + matches arguments when mailer has only args when parameterized + passes when mailer is parameterized (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) passes with provided argument matchers (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 when mixing parameterized and non-parameterized emails (PENDING: This version of Rails does not support parameterized mailers) + 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 -have_rendered - with should_not - when fails with a redirect - gives informative error message - with a badly formatted error message - falls back to something informative - when assert_template fails +route_to + uses failure message from assert_recognizes + delegates to assert_recognizes + provides a description + with should + when assert_recognizes passes passes - when fails due to some other exception + when assert_recognizes fails with a routing error + fails with message from assert_recognizes + when assert_recognizes fails with an assertion failure + fails with message from assert_recognizes + when an exception is raised raises that exception - when assert_template passes - fails with custom failure message - 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 + with shortcut syntax + routes with nested query parameters + routes with extra options + routes without extra options + routes with multiple query parameters + routes with one query parameter + with should_not + when assert_recognizes fails with a routing error + passes + when an exception is raised raises that exception - when assert_template passes + when assert_recognizes fails with an assertion failure passes - when assert_template fails - uses failure message from assert_template - -RSpec::Rails::AssertionDelegator - provides a module that delegates assertion methods to an isolated class - delegates back to the including instance for methods the assertion module requires - does not delegate method_missing - -RSpec::Rails::ChannelExampleGroup - behaves like an rspec-rails example group mixin - adds does not add `:type` metadata on inclusion - when `infer_spec_type_from_file_location!` is not configured - includes itself in example groups tagged with `type: :channel` - for an example group defined in a file in the .\spec\channels\ directory - does not tag groups in that directory with `type: :channel` - does not include itself in the example group - for an example group defined in a file in the ./spec/channels/ directory - does not tag groups in that directory with `type: :channel` - does not include itself in the example group - when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :channel` - for an example group defined in a file in the ./spec/channels/ directory - tags groups in that directory with `type: :channel` - applies configured `before(:context)` hooks with `type: :channel` metadata - includes itself in the example group - allows users to override the type - for an example group defined in a file in the .\spec\channels\ directory - includes itself in the example group - tags groups in that directory with `type: :channel` - applies configured `before(:context)` hooks with `type: :channel` metadata - allows users to override the type - -ActiveSupport::Relation match_array matcher - fails if the scope encompasses fewer records than on the right hand side - verifies that the scope returns the records on the right hand side, regardless of order - fails if the scope encompasses more records than on the right hand side - -RSpec::Rails::FixtureSupport - handles namespaced fixtures - 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 - with use_transactional_tests set to true - works with #uses_transaction helper - -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 `ActiveModel` - allows you to stub instances of `ActiveModel` + when assert_recognizes passes + fails with custom message -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 validation context if provided - includes a failure message for the negative case - uses a custom failure message if provided - does not include the validation context if not provided - includes the error messages in the failure message - includes the error messages for simple implementations of error messages +RSpec::Rails::MinitestLifecycleAdapter + allows let variables named 'send' + invokes minitest lifecycle hooks at the appropriate times RSpec::Rails::MinitestAssertionAdapter - exposes assert_send to host examples - exposes refute_same to host examples - exposes refute_kind_of to host examples - exposes assert_same to host examples - exposes assert_predicate to host examples - exposes assert_throws to host examples - exposes refute_in_epsilon to host examples - exposes assert_raises to host examples - exposes refute_operator to host examples - exposes assert_equal to host examples - exposes assert_instance_of to host examples - exposes refute_empty to host examples - exposes assert_kind_of to host examples + exposes assert_silent to host examples does not expose Minitest's message method - exposes assert_respond_to to host examples - exposes refute_equal to host examples - does not expose internal methods of Minitest + exposes assert_operator to host examples exposes assert_match to host examples + exposes refute_instance_of to host examples exposes refute_includes to host examples - exposes refute_nil to host examples - exposes refute_path_exists to host examples exposes assert_nil to host examples - exposes refute_instance_of to host examples - exposes refute_pattern to host examples - exposes refute_in_delta to host examples - exposes refute_match to host examples - exposes refute_respond_to to host examples - exposes assert to host examples - exposes flunk to host examples - exposes assert_in_epsilon to host examples + exposes refute_path_exists to host examples + exposes refute_nil to host examples + exposes assert_kind_of to host examples + exposes assert_send to host examples + exposes assert_empty to host examples + exposes refute to host examples + exposes assert_throws to host examples + exposes assert_respond_to to host examples + exposes assert_in_delta to host examples + does not expose internal methods of Minitest + exposes refute_kind_of to host examples + exposes refute_empty to host examples + exposes assert_predicate to host examples exposes assert_output to host examples + exposes flunk to host examples + exposes assert_same to host examples + exposes refute_in_epsilon to host examples exposes refute_predicate to host examples - exposes assert_in_delta to host examples - does not leak TestUnit specific methods into the AssertionDelegator exposes assert_pattern to host examples - exposes assert_empty to host examples - exposes assert_path_exists to host examples + exposes assert to host examples + exposes refute_match to host examples exposes assert_includes to host examples - exposes refute to host examples - exposes assert_operator to host examples - exposes assert_silent to host examples + exposes refute_pattern to host examples + exposes assert_instance_of to host examples + exposes refute_operator to host examples + exposes refute_same to host examples + exposes refute_respond_to to host examples + exposes refute_in_delta to host examples + exposes assert_raises to host examples + exposes assert_in_epsilon to host examples + exposes assert_equal to host examples + exposes refute_equal to host examples + exposes assert_path_exists to host examples + does not leak TestUnit specific methods into the AssertionDelegator -RSpec::Rails::ViewExampleGroup - #stub_template - caches FixtureResolver instances between example groups - prepends an ActionView::FixtureResolver to the view path - caches FixtureResolver instances between examples - #view - delegates to _view - is accessible to configuration-level hooks - #params - delegates to the controller +Configuration + metadata `type: :model` sets up model example groups + metadata `type: :mailer` sets up mailer example groups + deprecates fixture_path = + adds 'lib/rspec/rails' to the backtrace exclusions + metadata `type: :feature` sets up feature example groups + metadata `type: :controller` sets up controller example groups + metadata `type: :helper` sets up helper example groups + metadata `type: :view` sets up view example groups + has a default #file_fixture_path of 'spec/fixtures/files' + metadata `type: :request` sets up request example groups + #filter_rails_from_backtrace! adds exclusion patterns for rails gems + deprecates fixture_path + fixture support is included with metadata `:use_fixtures` + metadata `type: :routing` sets up routing example groups + fixture support is included with metadata `:use_fixtures` and deprecated fixture_path configured + fixture support is included with metadata `:use_fixtures` and fixture_paths configured + adds 'vendor/' to the backtrace exclusions + adds settings + `#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 `nil` by default + `#rendering_views?` is `false` by default + `#global_fixtures?` is `false` by default + `#global_fixtures?` is `false` by default + `#global_fixtures` is `nil` by default + `#render_views` sets `render_views?` to `true` + `#use_transactional_fixtures?` is `false` by default + `#use_transactional_fixtures?` is `false` by default + `#infer_base_class_for_anonymous_controllers?` is `true` by default + `#use_transactional_fixtures` is `nil` by default + `#use_transactional_examples` is an alias for `use_transactional_fixtures` + `#fixture_paths` is `nil` by default + `#rendering_views` is `nil` by default + `#rendering_views?` is `false` by default + `#render_views?` is false 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 + `#global_fixtures=` + changes `global_fixtures?` to the true for a truthy value + sets `global_fixtures` to the provided value + `#use_transactional_fixtures=` + sets `use_transactional_fixtures` to the provided value + changes `use_transactional_fixtures?` to the true for a truthy value + `#infer_base_class_for_anonymous_controllers=` + changes `infer_base_class_for_anonymous_controllers?` to the true for a truthy value + sets `infer_base_class_for_anonymous_controllers` to the provided value + `#fixture_paths=` + sets `fixture_paths` to the provided value + changes `fixture_paths?` to the true for a truthy value + `#use_instantiated_fixtures=` + changes `use_instantiated_fixtures?` to the true for a truthy value + sets `use_instantiated_fixtures` to the provided value + `#render_views=` + sets `render_views?` to the truthiness of the provided value + `#rendering_views=` + changes `rendering_views?` to the true for a truthy value + sets `rendering_views` to the provided value + #infer_spec_type_from_file_location! + 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 `:helper` for file path `spec/helpers` + sets the type to `:view` for file path `spec/views` + sets the type to `:request` for file path `spec/integration` + sets the type to `:request` for file path `spec/api` + sets the type to `:controller` for file path `spec/controllers` + sets the type to `:model` for file path `spec/models` + sets the type to `:request` for file path `spec/requests` + 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) + +RSpec::Rails::RoutingExampleGroup + named routes + delegates them to the route_set behaves like an rspec-rails example group mixin adds does not add `:type` metadata on inclusion when `infer_spec_type_from_file_location!` is configured - includes itself in example groups tagged with `type: :view` - for an example group defined in a file in the .\spec\views\ directory - applies configured `before(:context)` hooks with `type: :view` metadata - tags groups in that directory with `type: :view` - allows users to override the type + includes itself in example groups tagged with `type: :routing` + for an example group defined in a file in the .\spec\routing\ directory includes itself in the example group - for an example group defined in a file in the ./spec/views/ directory - applies configured `before(:context)` hooks with `type: :view` metadata + applies configured `before(:context)` hooks with `type: :routing` metadata + allows users to override the type + tags groups in that directory with `type: :routing` + for an example group defined in a file in the ./spec/routing/ directory + tags groups in that directory with `type: :routing` includes itself in the example group + applies configured `before(:context)` hooks with `type: :routing` metadata allows users to override the type - tags groups in that directory with `type: :view` 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` + 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 - 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 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 - automatic inclusion of helpers - operates normally when the view has no path and there is a Helper class defined - includes the helper with the same name - operates normally when no helper with the same name exists - includes the namespaced helper with the same name - application helper exists - includes the application helper - no application helper exists - operates normally - #render - given no input - sends render(:template => (described file)) to the view - converts the filename without format into render options - converts the filename components into render options - converts the filename with variant into render options - given a hash - sends the hash as the first arg to render - given a string - sends string as the first arg to render - #_controller_path - with a common _default_file_to_render - it returns the directory - with a nested _default_file_to_render - it returns the directory path - routes helpers collides with asset helpers - uses routes helpers - #template - is deprecated - delegates to #view -RSpec::Rails::ViewRendering - when render_views? is false - supports manipulating view paths with arrays - supports manipulating view paths with resolvers - supports manipulating view paths - with empty template resolver - works with custom resolvers - works with strings - 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 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 - in a nested group - passes override to children - overrides the value inherited from the parent group - leaves the parent group as/is - with true - tells examples to render views - with false - tells examples not to render views - with no args - tells examples to render views - with true - tells examples to render views - -render_template - given a symbol - converts to_s and delegates to assert_template - given a hash - delegates to assert_template - with should - when assert_template passes +have_stream matchers + have_stream_for + raises ArgumentError when no subscription passed to expect + raises when no subscription started + passes + fails with message + with negated form + fails with message passes - when assert_template fails - uses failure message from assert_template - when fails due to some other exception - raises that exception - with should_not - when fails due to some other exception - raises that exception - when assert_template fails + have_stream_from + raises ArgumentError when no subscription passed to expect + passes + fails with message + raises when no subscription started + with negated form + fails with message passes - 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 - given a string - delegates to assert_template + 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 + raises when no subscription started + passes with negated form + fails with message -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 +RSpec::Rails::FeatureExampleGroup + includes Rails route helpers + #visit + is resistant to load order errors + raises an error informing about missing Capybara + behaves like an rspec-rails example group mixin + adds does not add `:type` metadata on inclusion + when `infer_spec_type_from_file_location!` is configured + includes itself in example groups tagged with `type: :feature` + for an example group defined in a file in the .\spec\features\ directory + applies configured `before(:context)` hooks with `type: :feature` metadata + allows users to override the type + tags groups in that directory with `type: :feature` + includes itself in the example group + for an example group defined in a file in the ./spec/features/ directory + allows users to override the type + tags groups in that directory with `type: :feature` + includes itself in the example group + applies configured `before(:context)` hooks with `type: :feature` metadata + when `infer_spec_type_from_file_location!` is not configured + includes itself in example groups tagged with `type: :feature` + for an example group defined in a file in the .\spec\features\ directory + does not tag groups in that directory with `type: :feature` + does not include itself in the example group + for an example group defined in a file in the ./spec/features/ directory + does not include itself in the example group + does not tag groups in that directory with `type: :feature` + when nested inside a request example group + includes Rails route helpers -have_broadcasted_to matchers - have_broadcasted_to - passes when using alias - counts only messages sent in block - passes with provided data - has an appropriate description when aliased - passes with provided data matchers with anything - has an appropriate description - throws descriptive error when no test adapter set - fails with with block with incorrect data - passes with :twice count - fails when too many messages broadcast - passes when using symbol target - reports correct number in fail error message - passes when negated - fails when negated and message is sent - generates failure message with at least hint - passes with multiple streams - has an appropriate description when stream name is passed as an array - has an appropriate description including the matcher's description when qualified with `#with` and a composable matcher - passes with :once count - passes with default messages count (exactly one) - raises ArgumentError when no Proc passed to expect - passes with :thrice count - generates failure message with at most hint - generates failure message when data not match - passes with provided data matchers - fails when message is not sent - has an appropriate description including the expected contents when qualified with `#with` - has an appropriate description not mentioning the channel when qualified with `#from_channel` - passes with at_most count when sent messages are under limit - passes with at_least count when sent messages are over limit - when object is passed as first argument - when channel is present - passes - when channel can't be inferred - raises exception +be_new_record + a persisted record + fails + fails with custom failure message + a new record + fails with custom failure message + passes Pending: (Failures listed here are expected and do not affect your suite's status) - 1) ActiveJob matchers have_enqueued_job accepts matchers as arguments to at_priority + 1) RSpec::Rails::SystemExampleGroup#after sets the :extra_failure_lines metadata to an array of STDOUT lines + # Temporarily skipped with xit + # ./spec/rspec/rails/example/system_example_group_spec.rb:84 + + 2) RSpec::Rails::SystemExampleGroup#take_screenshot handles Rails calling metadata + # Temporarily skipped with xit + # ./spec/rspec/rails/example/system_example_group_spec.rb:106 + + 3) ActiveJob matchers have_enqueued_job accepts matchers as arguments to at_priority # No reason given Failure/Error: @priority = priority.to_i @@ -2583,42 +2627,34 @@ # ./spec/spec_helper.rb:86:in `block (3 levels) in ' # ./spec/spec_helper.rb:80:in `block (2 levels) in ' - 2) RSpec::Rails::SystemExampleGroup#take_screenshot handles Rails calling metadata - # Temporarily skipped with xit - # ./spec/rspec/rails/example/system_example_group_spec.rb:106 - - 3) RSpec::Rails::SystemExampleGroup#after sets the :extra_failure_lines metadata to an array of STDOUT lines - # Temporarily skipped with xit - # ./spec/rspec/rails/example/system_example_group_spec.rb:84 - - 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:378 - - 5) 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:372 + 4) 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:416 - 6) HaveEnqueuedMail matchers have_enqueued_mail when parameterized fails if the arguments do not match the mailer method's signature + 5) 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:439 - 7) HaveEnqueuedMail matchers have_enqueued_mail when parameterized passes with provided argument matchers + 6) 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:429 - 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:416 - - 9) HaveEnqueuedMail matchers have_enqueued_mail when parameterized passes when mixing parameterized and non-parameterized emails + 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:422 -Finished in 1 minute 13.67 seconds (files took 1 minute 19.54 seconds to load) + 8) 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:372 + + 9) 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:378 + +Finished in 9.21 seconds (files took 8.63 seconds to load) 854 examples, 0 failures, 9 pending -Randomized with seed 23670 +Randomized with seed 51903 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -2652,12 +2688,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/9966/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/9966/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/23208 and its subdirectories -I: Current time: Sun Apr 20 02:18:55 -12 2025 -I: pbuilder-time-stamp: 1745158735 +I: removing directory /srv/workspace/pbuilder/9966 and its subdirectories +I: Current time: Mon Apr 21 04:21:33 +14 2025 +I: pbuilder-time-stamp: 1745158893