45 lines
1.0 KiB
Ruby
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
|