shard-ameba/spec/spec_helper.cr
2017-12-01 19:01:25 +02:00

66 lines
1.4 KiB
Crystal

require "spec"
require "../src/ameba"
module Ameba
struct DummyRule < Rule::Base
properties do
description : String = "Dummy rule that does nothing."
end
def test(source)
end
end
struct ErrorRule < Rule::Base
def test(source)
source.error self, source.location(1, 1),
"This rule always adds an error"
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?
end
def failure_message(source)
String.build do |str|
str << "Source expected to be valid, but there are errors:\n\n"
source.errors.each do |e|
str << " * #{e.rule.name}: #{e.message}\n"
end
end
end
def negative_failure_message(source)
"Source expected to be invalid, but it is valid."
end
end
end
def be_valid
Ameba::BeValidExpectation.new
end