Skip to content

Commit

Permalink
Added msgserial check back to the protocol_message
Browse files Browse the repository at this point in the history
  • Loading branch information
sacOO7 committed Jun 19, 2024
1 parent 6e449bd commit 38ef504
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/ably/models/protocol_message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@ def attributes
# Return a JSON ready object from the underlying #attributes using Ably naming conventions for keys
def as_json(*args)
raise TypeError, ':action is missing, cannot generate a valid Hash for ProtocolMessage' unless action
raise TypeError, ':msg_serial is missing, cannot generate a valid Hash for ProtocolMessage' if ack_required? && !has_message_serial?

attributes.dup.tap do |hash_object|
hash_object['action'] = action.to_i
Expand Down
8 changes: 8 additions & 0 deletions spec/unit/models/protocol_message_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,14 @@ def new_protocol_message(options)
end
end

context 'with missing msg_serial for ack message' do
let(:model) { new_protocol_message({ :action => message_action }) }

it 'it raises an exception' do
expect { model.to_json }.to raise_error TypeError, /msg_serial.*missing/
end
end

context 'is aliased by #to_s' do
let(:model) { new_protocol_message({ :action => attached_action, :channelSerial => 'unique', messages: [message1, message2, message3], :timestamp => as_since_epoch(Time.now) }) }

Expand Down

0 comments on commit 38ef504

Please sign in to comment.