thoughtbot--shoulda-matchers/spec/support/unit/helpers/validation_matcher_scenario...

45 lines
1.0 KiB
Ruby

module UnitTests
module ValidationMatcherScenarioHelpers
def self.configure_example_group(example_group)
example_group.include(self)
end
def build_scenario_for_validation_matcher(args)
UnitTests::ValidationMatcherScenario.new(
build_validation_matcher_scenario_args(args),
)
end
protected
def validation_matcher_scenario_args
{}
end
def configure_validation_matcher(matcher)
matcher
end
private
def build_validation_matcher_scenario_args(args)
args.
deep_merge(validation_matcher_scenario_args).
deep_merge(
matcher_name: matcher_name,
matcher_proc: method(matcher_name),
)
end
def matcher_name
validation_matcher_scenario_args.fetch(:matcher_name) do
raise KeyNotFoundError.new(<<-MESSAGE)
Please implement #validation_matcher_scenario_args in your example
group, in such a way that it returns a hash that contains a
:matcher_name key.
MESSAGE
end
end
end
end