Class: PactBroker::Pacts::Interactions::Types

Inherits:
Object
  • Object
show all
Defined in:
lib/pact_broker/pacts/interactions/types.rb

Constant Summary collapse

MESSAGE_TYPES =

Pact Spec v4+ message interaction types

[
  "Asynchronous/Messages",
  "Synchronous/Messages"
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content) ⇒ Types

Returns a new instance of Types.



11
12
13
# File 'lib/pact_broker/pacts/interactions/types.rb', line 11

def initialize(content)
  @content = content
end

Class Method Details

.for(content) ⇒ Object



15
16
17
# File 'lib/pact_broker/pacts/interactions/types.rb', line 15

def self.for(content)
  new(content)
end

Instance Method Details

#has_messages?Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
# File 'lib/pact_broker/pacts/interactions/types.rb', line 19

def has_messages?
  if spec_version < 4.0
    # Pre-v4: messages in "messages" key
    content.messages&.any? || false
  else
    # V4+: messages are typed interactions
    content.interactions&.any? { |i| message_interaction?(i) } || false
  end
end