Files
growstuff/spec/requests/conversations_spec.rb
2020-05-23 07:48:28 +12:00

65 lines
2.5 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe 'Converstions' do
describe 'DELETE destroy_multiple' do
let!(:member) { create(:admin_member) }
before do
sign_in member
end
it 'redirects to the conversations inbox' do
delete '/conversations/destroy_multiple', params: { conversation_ids: [] }
expect(response).to redirect_to '/conversations'
follow_redirect!
expect(response).to render_template(:index)
expect(response).to have_http_status(:ok)
end
it 'allows users to trash multiple inbox conversations' do
first_conversation = create(:notification, recipient: member)
second_conversation = create(:notification, recipient: member)
conversations_to_trash = [first_conversation.id, second_conversation.id]
# we dont actually destroy the messages, we move them to the trash folder
expect do
delete '/conversations/destroy_multiple', params: { conversation_ids: conversations_to_trash, box: 'inbox' }
end.not_to change(Mailboxer::Conversation, :count)
expect(member.mailbox.inbox.count).to eq 0
expect(member.mailbox.trash.count).to eq 2
end
it 'only deletes conversations for the current user' do
second_member = create(:admin_member)
first_conversation = create(:notification, sender: member, recipient: second_member)
second_conversation = create(:notification, sender: member, recipient: second_member)
conversations_to_trash = [first_conversation.id, second_conversation.id]
# we dont actually destroy the messages, we move them to the trash folder
expect do
delete '/conversations/destroy_multiple', params: { conversation_ids: conversations_to_trash }
end.not_to change(Mailboxer::Conversation, :count)
expect(second_member.mailbox.inbox.count).to eq 2
expect(second_member.mailbox.trash.count).to eq 0
end
it 'allows users to trash multiple sent conversations' do
first_conversation = create(:notification, sender: member)
second_conversation = create(:notification, sender: member)
conversations_to_trash = [first_conversation.id, second_conversation.id]
# we dont actually destroy the messages, we move them to the trash folder
expect do
delete '/conversations/destroy_multiple', params: { conversation_ids: conversations_to_trash, box: 'sent' }
end.not_to change(Mailboxer::Conversation, :count)
expect(member.mailbox.sentbox.count).to eq 0
expect(member.mailbox.trash.count).to eq 2
end
end
end