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
This commit is contained in:
committed by
Sojan Jose
parent
43e54a7bfb
commit
4768aca484
35
spec/presenters/conversations/event_data_presenter_spec.rb
Normal file
35
spec/presenters/conversations/event_data_presenter_spec.rb
Normal file
@@ -0,0 +1,35 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user