summaryrefslogtreecommitdiff
path: root/spec/bundler
diff options
context:
space:
mode:
authorUtkarsh Gupta <utkarsh@debian.org>2020-06-30 22:08:54 +0530
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2020-07-15 16:05:12 +0900
commitc44c7019b5b320d427b9cf560fdb7790fd5c775f (patch)
tree2ff38fde6ac13b12a1479aecfadb2b5f52a69bb6 /spec/bundler
parent4f9c673cabcf9ae1d7ac2aa9d4a632f41ae76e38 (diff)
[rubygems/rubygems] Add tests with different flag combinations
Since this PR was made because we missed checking RuboCop offenses with different flags, therefore adding tests so that all flag combinations are tested. Signed-off-by: Utkarsh Gupta <utkarsh@debian.org> https://github.com/rubygems/rubygems/commit/d08250efc2
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3275
Diffstat (limited to 'spec/bundler')
-rw-r--r--spec/bundler/commands/newgem_spec.rb55
1 files changed, 44 insertions, 11 deletions
diff --git a/spec/bundler/commands/newgem_spec.rb b/spec/bundler/commands/newgem_spec.rb
index 41806533d9..39a69fe1f2 100644
--- a/spec/bundler/commands/newgem_spec.rb
+++ b/spec/bundler/commands/newgem_spec.rb
@@ -10,6 +10,15 @@ RSpec.describe "bundle gem" do
expect(bundled_app("#{gem_name}/lib/#{require_path}/version.rb")).to exist
end
+ def bundle_exec_rubocop
+ prepare_gemspec(bundled_app(gem_name, "#{gem_name}.gemspec"))
+ rubocop_version = RUBY_VERSION > "2.4" ? "0.85.1" : "0.80.1"
+ gems = ["minitest", "rake", "rake-compiler", "rspec", "rubocop -v #{rubocop_version}", "test-unit"]
+ path = Bundler.feature_flag.default_install_uses_path? ? local_gem_path(:base => bundled_app(gem_name)) : system_gem_path
+ realworld_system_gems gems, :path => path
+ bundle "exec rubocop --config .rubocop.yml", :dir => bundled_app(gem_name)
+ end
+
let(:generated_gemspec) { Bundler.load_gemspec_uncached(bundled_app(gem_name).join("#{gem_name}.gemspec")) }
let(:gem_name) { "mygem" }
@@ -174,17 +183,6 @@ RSpec.describe "bundle gem" do
it "generates a default .rubocop.yml" do
expect(bundled_app("#{gem_name}/.rubocop.yml")).to exist
end
-
- it "runs rubocop inside the generated gem with no offenses" do
- skip "ruby_core has an 'ast.rb' file that gets in the middle and breaks this spec" if ruby_core?
- prepare_gemspec(bundled_app(gem_name, "#{gem_name}.gemspec"))
- rubocop_version = RUBY_VERSION > "2.4" ? "0.85.1" : "0.80.1"
- gems = ["rake", "rubocop -v #{rubocop_version}"]
- path = Bundler.feature_flag.default_install_uses_path? ? local_gem_path(:base => bundled_app(gem_name)) : system_gem_path
- realworld_system_gems gems, :path => path
- bundle "exec rubocop --config .rubocop.yml", :dir => bundled_app(gem_name)
- expect(err).to be_empty
- end
end
shared_examples_for "--no-rubocop flag" do
@@ -214,6 +212,41 @@ RSpec.describe "bundle gem" do
end
end
+ it "has no rubocop offenses when using --rubocop flag" do
+ skip "ruby_core has an 'ast.rb' file that gets in the middle and breaks this spec" if ruby_core?
+ bundle "gem #{gem_name} --rubocop"
+ bundle_exec_rubocop
+ expect(err).to be_empty
+ end
+
+ it "has no rubocop offenses when using --ext and --rubocop flag" do
+ skip "ruby_core has an 'ast.rb' file that gets in the middle and breaks this spec" if ruby_core?
+ bundle "gem #{gem_name} --ext --rubocop"
+ bundle_exec_rubocop
+ expect(err).to be_empty
+ end
+
+ it "has no rubocop offenses when using --ext, --test=minitest, and --rubocop flag" do
+ skip "ruby_core has an 'ast.rb' file that gets in the middle and breaks this spec" if ruby_core?
+ bundle "gem #{gem_name} --ext --test=minitest --rubocop"
+ bundle_exec_rubocop
+ expect(err).to be_empty
+ end
+
+ it "has no rubocop offenses when using --ext, --test=rspec, and --rubocop flag" do
+ skip "ruby_core has an 'ast.rb' file that gets in the middle and breaks this spec" if ruby_core?
+ bundle "gem #{gem_name} --ext --test=rspec --rubocop"
+ bundle_exec_rubocop
+ expect(err).to be_empty
+ end
+
+ it "has no rubocop offenses when using --ext, --ext=test-unit, and --rubocop flag" do
+ skip "ruby_core has an 'ast.rb' file that gets in the middle and breaks this spec" if ruby_core?
+ bundle "gem #{gem_name} --ext --test=test-unit --rubocop"
+ bundle_exec_rubocop
+ expect(err).to be_empty
+ end
+
shared_examples_for "CI config is absent" do
it "does not create any CI files" do
expect(bundled_app("#{gem_name}/.github/workflows/main.yml")).to_not exist