mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-01-06 00:17:49 -05:00
65 lines
2.5 KiB
Ruby
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
|