Change the level of failure in the runner

This commit is contained in:
Vitalii Elenhaupt 2019-04-14 15:57:48 +03:00
parent f6a57f9272
commit 575fe07879
No known key found for this signature in database
GPG key ID: 7558EF3A4056C706
5 changed files with 55 additions and 10 deletions

View file

@ -114,6 +114,29 @@ module Ameba::Cli
end
end
context "--fail-level" do
it "configures fail level Refactoring" do
c = Cli.parse_args %w(--fail-level refactoring)
c.fail_level.should eq Severity::Refactoring
end
it "configures fail level Warning" do
c = Cli.parse_args %w(--fail-level Warning)
c.fail_level.should eq Severity::Warning
end
it "configures fail level Error" do
c = Cli.parse_args %w(--fail-level error)
c.fail_level.should eq Severity::Error
end
it "raises if fail level is incorrect" do
expect_raises(Exception, "Incorrect severity name JohnDoe") do
Cli.parse_args %w(--fail-level JohnDoe)
end
end
end
it "accepts unknown args as globs" do
c = Cli.parse_args %w(source1.cr source2.cr)
c.globs.should eq %w(source1.cr source2.cr)

View file

@ -13,6 +13,7 @@ module Ameba
describe Runner do
formatter = DummyFormatter.new
default_severity = Severity::Refactoring
describe "#run" do
it "returns self" do
@ -49,7 +50,7 @@ module Ameba
rules << rule
end
Runner.new(all_rules, [source], formatter).run.success?.should be_true
Runner.new(all_rules, [source], formatter, default_severity).run.success?.should be_true
end
context "invalid syntax" do
@ -57,7 +58,7 @@ module Ameba
rules = [Rule::Lint::Syntax.new] of Rule::Base
source = Source.new "def bad_syntax"
Runner.new(rules, [source], formatter).run
Runner.new(rules, [source], formatter, default_severity).run
source.should_not be_valid
source.issues.first.rule.name.should eq Rule::Lint::Syntax.rule_name
end
@ -70,7 +71,7 @@ module Ameba
when my_bad_syntax
)
Runner.new(rules, [source], formatter).run
Runner.new(rules, [source], formatter, default_severity).run
source.should_not be_valid
source.issues.size.should eq 1
end
@ -83,7 +84,7 @@ module Ameba
a = 1 # ameba:disable LineLength
)
Runner.new(rules, [source], formatter).run
Runner.new(rules, [source], formatter, default_severity).run
source.should_not be_valid
source.issues.first.rule.name.should eq Rule::Lint::UnneededDisableDirective.rule_name
end
@ -107,7 +108,7 @@ module Ameba
a = 1
), "source.cr"
runner = Runner.new(rules, [source], formatter).run
runner = Runner.new(rules, [source], formatter, default_severity).run
runner.explain({file: "source.cr", line: 1, column: 1}, io)
io.to_s.should_not be_empty
end
@ -119,7 +120,7 @@ module Ameba
a = 1
), "source.cr"
runner = Runner.new(rules, [source], formatter).run
runner = Runner.new(rules, [source], formatter, default_severity).run
runner.explain({file: "source.cr", line: 1, column: 2}, io)
io.to_s.should be_empty
end
@ -139,7 +140,15 @@ module Ameba
s = Source.new %q(
WrongConstant = 5
)
Runner.new(rules, [s], formatter).run.success?.should be_false
Runner.new(rules, [s], formatter, default_severity).run.success?.should be_false
end
it "depends on the level of severity" do
rules = Rule.rules.map &.new.as(Rule::Base)
s = Source.new %q(WrongConstant = 5)
Runner.new(rules, [s], formatter, Severity::Error).run.success?.should be_true
Runner.new(rules, [s], formatter, Severity::Warning).run.success?.should be_true
Runner.new(rules, [s], formatter, Severity::Refactoring).run.success?.should be_false
end
end
end