diff --git a/.rubocop_fixme.yml b/.rubocop_fixme.yml index a35f7a1182..1d6063fb0b 100644 --- a/.rubocop_fixme.yml +++ b/.rubocop_fixme.yml @@ -148,3 +148,35 @@ RSpec/AnyInstance: - 'spec/services/hyrax/workflow/sipity_actions_generator_spec.rb' - 'spec/services/hyrax/workflow/state_machine_generator_spec.rb' - 'spec/services/hyrax/workflow/workflow_permissions_generator_spec.rb' + +# Offense count: 51 +RSpec/ExpectInHook: + Enabled: false + +# Offense count: 31 +RSpec/LetBeforeExamples: + Exclude: + - 'spec/forms/hyrax/forms/collection_form_spec.rb' + - 'spec/presenters/hyrax/collection_presenter_spec.rb' + - 'spec/presenters/hyrax/trophy_presenter_spec.rb' + - 'spec/services/hyrax/query_service_spec.rb' + - 'spec/services/hyrax/workflow/action_taken_service_spec.rb' + - 'spec/services/hyrax/workflow/notification_service_spec.rb' + +# Offense count: 27 +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: and_return, block +RSpec/ReturnFromStub: + Exclude: + - 'spec/controllers/hyrax/api/items_controller_spec.rb' + - 'spec/controllers/hyrax/file_sets_controller_spec.rb' + - 'spec/lib/hyrax/arkivo/create_subscription_job_spec.rb' + - 'spec/models/file_set_spec.rb' + - 'spec/presenters/hyrax/admin_set_options_presenter_spec.rb' + - 'spec/routing/api_route_spec.rb' + - 'spec/views/_user_util_links.html.erb_spec.rb' + - 'spec/views/hyrax/base/_attributes.html.erb_spec.rb' + - 'spec/views/hyrax/base/_form.html.erb_spec.rb' + - 'spec/views/hyrax/base/file_manager.html.erb_spec.rb' + - 'spec/views/hyrax/dashboard/profiles/edit.html.erb_spec.rb' + - 'spec/views/hyrax/users/_user_info.html.erb_spec.rb' diff --git a/hyrax.gemspec b/hyrax.gemspec index a4c4a20cd8..bccd6a2d9b 100644 --- a/hyrax.gemspec +++ b/hyrax.gemspec @@ -40,8 +40,8 @@ EOF spec.add_dependency 'blacklight-gallery', '~> 0.7' spec.add_dependency 'tinymce-rails', '~> 4.1' spec.add_dependency 'font-awesome-rails', '~> 4.2' - spec.add_dependency 'select2-rails', '~> 3.5.9' - spec.add_dependency 'json-schema' # for Arkivio + spec.add_dependency 'select2-rails', '~> 3.5' + spec.add_dependency 'json-schema' # for Arkivo spec.add_dependency 'nest', '~> 2.0' spec.add_dependency 'mailboxer', '~> 0.12' spec.add_dependency 'carrierwave', '~> 1.0' @@ -51,18 +51,20 @@ EOF spec.add_dependency 'legato', '~> 0.3' spec.add_dependency 'posix-spawn' spec.add_dependency 'jquery-ui-rails', '~> 5.0' - spec.add_dependency 'redis-namespace', '~> 1.5.2' + spec.add_dependency 'redis-namespace', '~> 1.5' + # Pin more tightly because 0.x gems are potentially unstable spec.add_dependency 'flot-rails', '~> 0.0.6' spec.add_dependency 'almond-rails', '~> 0.1' spec.add_dependency 'qa', '~> 1.0' # questioning_authority spec.add_dependency 'flipflop', '~> 2.3' - spec.add_dependency 'jquery-datatables-rails', '~> 3.4.0' + spec.add_dependency 'jquery-datatables-rails', '~> 3.4' spec.add_dependency 'rdf-rdfxml' # controlled vocabulary importer spec.add_dependency 'clipboard-rails', '~> 1.5' spec.add_dependency 'rails_autolink', '~> 1.1' spec.add_dependency 'active_fedora-noid', '~> 2.0', '>= 2.0.2' spec.add_dependency 'awesome_nested_set', '~> 3.1' spec.add_dependency 'breadcrumbs_on_rails', '~> 3.0' + # Pin more tightly because 0.x gems are potentially unstable spec.add_dependency 'kaminari_route_prefix', '~> 0.1.1' spec.add_dependency 'power_converter', '~> 0.1', '>= 0.1.2' spec.add_dependency 'dry-validation', '~> 0.9' @@ -88,8 +90,18 @@ EOF spec.add_development_dependency "factory_girl_rails", '~> 4.4' spec.add_development_dependency "equivalent-xml", '~> 0.5' spec.add_development_dependency "jasmine", '~> 2.3' + # Pin rubocop and rubocop-rspec tightly. Minor-level version bumps + # in these gems cause Rubocop violations, and those violations cause + # continuous integration builds to fail, and those failures prevent + # us from merging pull requests. As a community, we have decided + # that it is not reasonable to manage style violations to be dealt + # with in a pull request *unless* said pull request's intent is to + # bring the codebase in further alignment with community style + # conventions. This allows us to take a managed approach to code + # style -- we choose to update style when we wish, not when a + # minor-level version bump in a dependency comes out. spec.add_development_dependency 'rubocop', '~> 0.49.1' - spec.add_development_dependency 'rubocop-rspec', '~> 1.15.0' + spec.add_development_dependency 'rubocop-rspec', '~> 1.16.0' spec.add_development_dependency 'shoulda-matchers', '~> 3.1' spec.add_development_dependency 'rails-controller-testing', '~> 0' spec.add_development_dependency 'webmock' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index e48c29844a..4f759aac03 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -140,7 +140,7 @@ def main_app Hyrax.config.enable_noids = false end - config.before :each do |example| + config.before do |example| if example.metadata[:type] == :feature && Capybara.current_driver != :rack_test DatabaseCleaner.strategy = :truncation else diff --git a/spec/tasks/rake_spec.rb b/spec/tasks/rake_spec.rb index b3a33742e5..5b2cf09e77 100644 --- a/spec/tasks/rake_spec.rb +++ b/spec/tasks/rake_spec.rb @@ -11,15 +11,15 @@ it "creates a file" do run_task "hyrax:user:list_emails" - expect(File.exist?("user_emails.txt")).to be_truthy + expect(File).to exist("user_emails.txt") expect(IO.read("user_emails.txt")).to include(user1.email, user2.email) File.delete("user_emails.txt") end it "creates a file I give it" do run_task "hyrax:user:list_emails", "abc123.txt" - expect(File.exist?("user_emails.txt")).not_to be_truthy - expect(File.exist?("abc123.txt")).to be_truthy + expect(File).not_to exist("user_emails.txt") + expect(File).to exist("abc123.txt") expect(IO.read("abc123.txt")).to include(user1.email, user2.email) File.delete("abc123.txt") end