spec/acceptance/realtime/message_spec.rb in ably-1.1.8 vs spec/acceptance/realtime/message_spec.rb in ably-1.2.0

- old
+ new

@@ -73,9 +73,86 @@ publish_and_check_data data end end end + context 'a single Message object (#RSL1a)' do + let(:name) { random_str } + let(:data) { random_str } + let(:message) { Ably::Models::Message.new(name: name, data: data) } + + it 'publishes the message' do + channel.attach + channel.publish(message) + channel.subscribe do |msg| + expect(msg.name).to eq(message.name) + expect(msg.data).to eq(message.data) + stop_reactor + end + end + end + + context 'an array of Message objects (#RSL1a)' do + let(:data) { random_str } + let(:message1) { Ably::Models::Message.new(name: random_str, data: data) } + let(:message2) { Ably::Models::Message.new(name: random_str, data: data) } + let(:message3) { Ably::Models::Message.new(name: random_str, data: data) } + + it 'publishes three messages' do + channel.attach + channel.publish([message1, message2, message3]) + counter = 0 + channel.subscribe do |message| + counter += 1 + expect(message.data).to eq(data) + expect(message.name).to eq(message1.name) if counter == 1 + expect(message.name).to eq(message2.name) if counter == 2 + if counter == 3 + expect(message.name).to eq(message3.name) + stop_reactor + end + end + end + end + + context 'an array of hashes (#RSL1a)' do + let(:data) { random_str } + let(:message1) { { name: random_str, data: data } } + let(:message2) { { name: random_str, data: data } } + let(:message3) { { name: random_str, data: data } } + + it 'publishes three messages' do + channel.attach + channel.publish([message1, message2, message3]) + counter = 0 + channel.subscribe do |message| + counter += 1 + expect(message.data).to eq(data) + expect(message.name).to eq(message1[:name]) if counter == 1 + expect(message.name).to eq(message2[:name]) if counter == 2 + if counter == 3 + expect(message.name).to eq(message3[:name]) + stop_reactor + end + end + end + end + + context 'a name with data payload (#RSL1a, #RSL1b)' do + let(:name) { random_str } + let(:data) { random_str } + + it 'publishes a message' do + channel.attach + channel.publish(name, data) + channel.subscribe do |message| + expect(message.name).to eql(name) + expect(message.data).to eq(data) + stop_reactor + end + end + end + context 'with supported extra payload content type (#RTL6h, #RSL6a2)' do let(:channel) { client.channel("pushenabled:#{random_str}") } def publish_and_check_extras(extras) channel.attach