Move shared_examples and matcher into specs.
This commit is contained in:
parent
83188c625d
commit
b7135eec49
@ -1,5 +1,39 @@
|
|||||||
describe Hbc::Audit do
|
describe Hbc::Audit do
|
||||||
include AuditMatchers
|
def include_msg?(messages, msg)
|
||||||
|
if msg.is_a?(Regexp)
|
||||||
|
Array(messages).any? { |m| m =~ msg }
|
||||||
|
else
|
||||||
|
Array(messages).include?(msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
matcher :pass do
|
||||||
|
match do |audit|
|
||||||
|
!audit.errors? && !audit.warnings?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
matcher :fail do
|
||||||
|
match(&:errors?)
|
||||||
|
end
|
||||||
|
|
||||||
|
matcher :warn do
|
||||||
|
match do |audit|
|
||||||
|
audit.warnings? && !audit.errors?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
matcher :fail_with do |error_msg|
|
||||||
|
match do |audit|
|
||||||
|
include_msg?(audit.errors, error_msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
matcher :warn_with do |warning_msg|
|
||||||
|
match do |audit|
|
||||||
|
include_msg?(audit.warnings, warning_msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
let(:cask) { instance_double(Hbc::Cask) }
|
let(:cask) { instance_double(Hbc::Cask) }
|
||||||
let(:download) { false }
|
let(:download) { false }
|
||||||
|
|||||||
@ -1,7 +1,12 @@
|
|||||||
describe Hbc::DSL::Version do
|
describe Hbc::DSL::Version do
|
||||||
include ExpectationsHashHelper
|
shared_examples "expectations hash" do |input_name, expectations|
|
||||||
|
expectations.each do |input_value, expected_output|
|
||||||
let(:version) { described_class.new(raw_version) }
|
context "when #{input_name} is #{input_value.inspect}" do
|
||||||
|
let(input_name.to_sym) { input_value }
|
||||||
|
it { is_expected.to eq expected_output }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
shared_examples "version equality" do
|
shared_examples "version equality" do
|
||||||
let(:raw_version) { "1.2.3" }
|
let(:raw_version) { "1.2.3" }
|
||||||
@ -36,6 +41,8 @@ describe Hbc::DSL::Version do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
let(:version) { described_class.new(raw_version) }
|
||||||
|
|
||||||
describe "#==" do
|
describe "#==" do
|
||||||
subject { version == other }
|
subject { version == other }
|
||||||
include_examples "version equality"
|
include_examples "version equality"
|
||||||
|
|||||||
@ -1,39 +0,0 @@
|
|||||||
module AuditMatchers
|
|
||||||
extend RSpec::Matchers::DSL
|
|
||||||
|
|
||||||
matcher :pass do
|
|
||||||
match do |audit|
|
|
||||||
!audit.errors? && !audit.warnings?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
matcher :fail do
|
|
||||||
match(&:errors?)
|
|
||||||
end
|
|
||||||
|
|
||||||
matcher :warn do
|
|
||||||
match do |audit|
|
|
||||||
audit.warnings? && !audit.errors?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
matcher :fail_with do |error_msg|
|
|
||||||
match do |audit|
|
|
||||||
include_msg?(audit.errors, error_msg)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
matcher :warn_with do |warning_msg|
|
|
||||||
match do |audit|
|
|
||||||
include_msg?(audit.warnings, warning_msg)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def include_msg?(messages, msg)
|
|
||||||
if msg.is_a?(Regexp)
|
|
||||||
Array(messages).any? { |m| m =~ msg }
|
|
||||||
else
|
|
||||||
Array(messages).include?(msg)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
module ExpectationsHashHelper
|
|
||||||
shared_examples "expectations hash" do |input_name, expectations|
|
|
||||||
expectations.each do |input_value, expected_output|
|
|
||||||
context "when #{input_name} is #{input_value.inspect}" do
|
|
||||||
let(input_name.to_sym) { input_value }
|
|
||||||
it { is_expected.to eq expected_output }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Loading…
x
Reference in New Issue
Block a user