mirror of
https://gitea.invidious.io/iv-org/shard-ameba.git
synced 2024-08-15 00:53:29 +00:00
Document configuration properties & specs
This commit is contained in:
parent
822a69b81c
commit
06855816d7
22 changed files with 325 additions and 8 deletions
58
spec/ameba/config_spec.cr
Normal file
58
spec/ameba/config_spec.cr
Normal file
|
@ -0,0 +1,58 @@
|
|||
require "../spec_helper"
|
||||
|
||||
module Ameba
|
||||
describe Config do
|
||||
config_sample = "config/ameba.yml"
|
||||
|
||||
describe ".load" do
|
||||
it "loads custom config" do
|
||||
config = Config.load config_sample
|
||||
config.should_not be_nil
|
||||
config.files.should_not be_nil
|
||||
config.formatter.should_not be_nil
|
||||
end
|
||||
|
||||
it "loads default config" do
|
||||
config = Config.load
|
||||
config.should_not be_nil
|
||||
config.files.should_not be_nil
|
||||
config.formatter.should_not be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe "#files, #files=" do
|
||||
config = Config.load config_sample
|
||||
|
||||
it "holds source files" do
|
||||
config.files.should contain "spec/ameba/config_spec.cr"
|
||||
end
|
||||
|
||||
it "allows to set files" do
|
||||
config.files = ["file.cr"]
|
||||
config.files.should eq ["file.cr"]
|
||||
end
|
||||
end
|
||||
|
||||
describe "#formatter, formatter=" do
|
||||
config = Config.load config_sample
|
||||
formatter = DummyFormatter.new
|
||||
|
||||
it "contains default formatter" do
|
||||
config.formatter.should_not be_nil
|
||||
end
|
||||
|
||||
it "allows to set formatter" do
|
||||
config.formatter = formatter
|
||||
config.formatter.should eq formatter
|
||||
end
|
||||
end
|
||||
|
||||
describe "#subconfig" do
|
||||
it "returns a specific subconfig" do
|
||||
config = Config.load config_sample
|
||||
config.subconfig("NoSuchConfig").should be_nil
|
||||
config.subconfig(Rule::LineLength.new.name).should_not be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
58
spec/ameba/runner_spec.cr
Normal file
58
spec/ameba/runner_spec.cr
Normal file
|
@ -0,0 +1,58 @@
|
|||
require "../spec_helper"
|
||||
|
||||
module Ameba
|
||||
private def runner(files = [__FILE__], formatter = DummyFormatter.new)
|
||||
config = Config.load "config/ameba.yml"
|
||||
config.formatter = formatter
|
||||
config.files = files
|
||||
|
||||
Runner.new(config)
|
||||
end
|
||||
|
||||
describe Runner do
|
||||
formatter = DummyFormatter.new
|
||||
|
||||
describe "#run" do
|
||||
it "returns self" do
|
||||
runner.run.should_not be_nil
|
||||
end
|
||||
|
||||
it "calls started callback" do
|
||||
runner(formatter: formatter).run
|
||||
formatter.started_sources.should_not be_nil
|
||||
end
|
||||
|
||||
it "calls finished callback" do
|
||||
runner(formatter: formatter).run
|
||||
formatter.finished_sources.should_not be_nil
|
||||
end
|
||||
|
||||
it "calls source_started callback" do
|
||||
runner(formatter: formatter).run
|
||||
formatter.started_source.should_not be_nil
|
||||
end
|
||||
|
||||
it "calls source_finished callback" do
|
||||
runner(formatter: formatter).run
|
||||
formatter.finished_source.should_not be_nil
|
||||
end
|
||||
end
|
||||
|
||||
describe "#success?" do
|
||||
it "returns true if runner has not been run" do
|
||||
runner.success?.should be_true
|
||||
end
|
||||
|
||||
it "returns true if all sources are valid" do
|
||||
runner.run.success?.should be_true
|
||||
end
|
||||
|
||||
it "returns false if there are invalid sources" do
|
||||
s = Source.new %q(
|
||||
WrongConstant = 5
|
||||
)
|
||||
Runner.new([s], formatter).run.success?.should be_false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -7,6 +7,29 @@ module Ameba
|
|||
end
|
||||
end
|
||||
|
||||
class DummyFormatter < Formatter::BaseFormatter
|
||||
property started_sources : Array(Source)?
|
||||
property finished_sources : Array(Source)?
|
||||
property started_source : Source?
|
||||
property finished_source : Source?
|
||||
|
||||
def started(sources)
|
||||
@started_sources = sources
|
||||
end
|
||||
|
||||
def source_finished(source : Source)
|
||||
@started_source = source
|
||||
end
|
||||
|
||||
def source_started(source : Source)
|
||||
@finished_source = source
|
||||
end
|
||||
|
||||
def finished(sources)
|
||||
@finished_sources = sources
|
||||
end
|
||||
end
|
||||
|
||||
struct BeValidExpectation
|
||||
def match(source)
|
||||
source.valid?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue