Move shared_examples and matcher into specs.
This commit is contained in:
parent
83188c625d
commit
b7135eec49
@ -1,5 +1,39 @@
|
||||
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(:download) { false }
|
||||
|
||||
@ -1,7 +1,12 @@
|
||||
describe Hbc::DSL::Version do
|
||||
include ExpectationsHashHelper
|
||||
|
||||
let(:version) { described_class.new(raw_version) }
|
||||
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
|
||||
|
||||
shared_examples "version equality" do
|
||||
let(:raw_version) { "1.2.3" }
|
||||
@ -36,6 +41,8 @@ describe Hbc::DSL::Version do
|
||||
end
|
||||
end
|
||||
|
||||
let(:version) { described_class.new(raw_version) }
|
||||
|
||||
describe "#==" do
|
||||
subject { version == other }
|
||||
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