diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aa1619c16..43762955b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,24 +32,53 @@ jobs: task: - internal_investigation - spec - rubocop_version: - - gem - include: - - rubocop_version: edge - ruby: 2.7 - task: internal_investigation - - rubocop_version: edge - ruby: 2.7 - task: spec - name: ${{ matrix.task }}, Ruby ${{ matrix.ruby }} (${{ matrix.rubocop_version }}) + name: ${{ matrix.task }}, Ruby ${{ matrix.ruby }} (gem) + steps: + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: "${{ matrix.ruby }}" + bundler-cache: true + - run: bundle exec rake ${{ matrix.task }} + + edge-rubocop: + runs-on: ubuntu-latest + strategy: + matrix: + ruby: + - 2.7 + task: + - internal_investigation + - spec + name: ${{ matrix.task }} Ruby ${{ matrix.ruby }} (edge) steps: - uses: actions/checkout@v2 - name: Use latest RuboCop from `master` run: | echo "gem 'rubocop', github: 'rubocop-hq/rubocop'" > Gemfile.local - if: matrix.rubocop_version == 'edge' - uses: ruby/setup-ruby@v1 with: ruby-version: "${{ matrix.ruby }}" bundler-cache: true - run: bundle exec rake ${{ matrix.task }} + + rspec4: + runs-on: ubuntu-latest + name: RSpec 4 + steps: + - uses: actions/checkout@v2 + - name: Use latest RSpec 4 from `4-0-dev` branch + run: | + sed -e '/rspec/d' -i Gemfile + cat << EOF > Gemfile.local + gem 'rspec', github: 'rspec/rspec', branch: '4-0-dev' + gem 'rspec-core', github: 'rspec/rspec-core', branch: '4-0-dev' + gem 'rspec-expectations', github: 'rspec/rspec-expectations', branch: '4-0-dev' + gem 'rspec-mocks', github: 'rspec/rspec-mocks', branch: '4-0-dev' + gem 'rspec-support', github: 'rspec/rspec-support', branch: '4-0-dev' + EOF + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7 + bundler-cache: true + - run: bundle exec rake spec diff --git a/.rspec b/.rspec index 4e33a322b..5be63fcb0 100644 --- a/.rspec +++ b/.rspec @@ -1,3 +1,2 @@ --require spec_helper ---color --format documentation diff --git a/Gemfile b/Gemfile index 515dec7c8..c7687ff5c 100644 --- a/Gemfile +++ b/Gemfile @@ -4,6 +4,13 @@ source 'https://rubygems.org' gemspec +gem 'rack' +gem 'rake' +gem 'rspec', '~> 3.11' +gem 'rubocop-performance', '~> 1.7' +gem 'rubocop-rake', '~> 0.6' +gem 'yard' + local_gemfile = 'Gemfile.local' if File.exist?(local_gemfile) diff --git a/rubocop-rspec.gemspec b/rubocop-rspec.gemspec index ad4c0ec56..980a0be7a 100644 --- a/rubocop-rspec.gemspec +++ b/rubocop-rspec.gemspec @@ -38,11 +38,4 @@ Gem::Specification.new do |spec| } spec.add_runtime_dependency 'rubocop', '~> 1.31' - - spec.add_development_dependency 'rack' - spec.add_development_dependency 'rake' - spec.add_development_dependency 'rspec', '>= 3.4' - spec.add_development_dependency 'rubocop-performance', '~> 1.7' - spec.add_development_dependency 'rubocop-rake', '~> 0.6' - spec.add_development_dependency 'yard' end diff --git a/spec/rubocop/cli/autocorrect_spec.rb b/spec/rubocop/cli/autocorrect_spec.rb index a709ef369..6740c23f8 100644 --- a/spec/rubocop/cli/autocorrect_spec.rb +++ b/spec/rubocop/cli/autocorrect_spec.rb @@ -1,8 +1,10 @@ # frozen_string_literal: true -RSpec.describe 'RuboCop::CLI --autocorrect', :isolated_environment do # rubocop:disable RSpec/DescribeClass +RSpec.describe 'RuboCop::CLI --autocorrect' do # rubocop:disable RSpec/DescribeClass subject(:cli) { RuboCop::CLI.new } + include_context 'isolated environment' + include_context 'when cli spec behavior' context 'when corrects `RSpec/Capybara/CurrentPathExpectation` with ' \ diff --git a/spec/smoke_tests/weird_rspec_spec.rb b/spec/smoke_tests/weird_rspec_spec.rb index f235484ae..843adf7d0 100644 --- a/spec/smoke_tests/weird_rspec_spec.rb +++ b/spec/smoke_tests/weird_rspec_spec.rb @@ -86,7 +86,7 @@ end it_behaves_like :something - it_should_behave_like :something + it_should_behave_like :something if RSpec::Core::Version::STRING < '4.0' it_behaves_like :something do let(:foo) { 'bar' } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a205416bf..c4f4d7deb 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -24,11 +24,7 @@ module SpecHelper config.order = :random # Run focused tests with `fdescribe`, `fit`, `:focus` etc. - config.filter_run focus: true - config.run_all_when_everything_filtered = true - - # Forbid RSpec from monkey patching any of our objects - config.disable_monkey_patching! + config.filter_run_when_matching :focus # We should address configuration warnings when we upgrade config.raise_errors_for_deprecations! @@ -38,6 +34,10 @@ module SpecHelper config.raise_on_warning = true config.include(ExpectOffense) + + config.include_context 'with default RSpec/Language config', :config + config.include_context 'config', :config + config.include_context 'smoke test', type: :cop_spec end $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))