Files
leadchat/spec/presenters/conversations/event_data_presenter_spec.rb
Emil Shakirov 4768aca484 Refactor Conversation model (#134)
* Add Conversation factory with dependent factories

* Include FactoryBot methods in rspec config

* Add unit tests for public methods of Conversation model

* Move Current model into a separate file in lib folder

* Disable Metrics/BlockLength rule for db/migrate and spec folders

* Get rid of global $dispatcher variable

* Create Message#unread_since scope

* Refactor callback methods in Conversation model

* Create Conversations::EventDataPresenter

* Add translation keys for activity messages

* Add pry-rails gem

* Refactor Conversation#notify_status_change

* Add mock_redis for test env
2019-10-12 23:38:41 +05:30

36 lines
1020 B
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Conversations::EventDataPresenter do
let(:presenter) { described_class.new(conversation) }
let(:conversation) { create(:complete_conversation) }
describe '#lock_data' do
it { expect(presenter.lock_data).to eq(id: conversation.display_id, locked: false) }
end
describe '#push_data' do
let(:expected_data) do
{
meta: {
sender: conversation.sender.push_event_data,
assignee: conversation.assignee
},
id: conversation.display_id,
messages: [],
inbox_id: conversation.inbox_id,
status: conversation.status_before_type_cast.to_i,
timestamp: conversation.created_at.to_i,
user_last_seen_at: conversation.user_last_seen_at.to_i,
agent_last_seen_at: conversation.agent_last_seen_at.to_i,
unread_count: 0
}
end
it 'returns push event payload' do
expect(presenter.push_data).to eq(expected_data)
end
end
end