Sha256: 946cab1a470bac38c87e4a509209bd827701af934e042e6bc8a2f566505e8934
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require 'pact/shared/json_differ' require 'pact/mock_service/interaction_decorator' module Pact module MockService module Interactions class InteractionDiffMessage def initialize previous_interaction, new_interaction @previous_interaction = previous_interaction @new_interaction = new_interaction end def to_s "An interaction with same description (#{new_interaction.description.inspect}) and provider state (#{new_interaction.provider_state.inspect}) but a different #{differences} has already been used. Please use a different description or provider state, or hard-code any random data." end private attr_reader :previous_interaction, :new_interaction def differences diff = Pact::JsonDiffer.call(previous_interaction_hash, new_interaction_hash, allow_unexpected_keys: false) diff.keys.collect do | parent_key | diff[parent_key].keys.collect do | child_key | "#{parent_key} #{child_key}" end end.flatten.join(", ").reverse.sub(",", "dna ").reverse end def previous_interaction_hash raw_hash previous_interaction end def new_interaction_hash raw_hash new_interaction end def raw_hash interaction JSON.parse(Pact::MockService::InteractionDecorator.new(interaction).to_json) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pact-mock_service-2.2.0 | lib/pact/mock_service/interactions/interaction_diff_message.rb |