Move shared_examples and matcher into specs.

This commit is contained in:
Markus Reiter 2017-03-05 03:46:13 +01:00
parent 83188c625d
commit b7135eec49
4 changed files with 45 additions and 53 deletions

View File

@ -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 }

View File

@ -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"

View File

@ -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

View File

@ -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