summaryrefslogtreecommitdiff
path: root/spec/requests/api/v3/broadcast_messages_spec.rb
blob: 948cd78c177bb3484d38f475d62dde0b39978aac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
require 'spec_helper'

describe API::V3::BroadcastMessages do
  let(:user)  { create(:user) }
  let(:admin) { create(:admin) }

  describe 'DELETE /broadcast_messages/:id' do
    let!(:message) { create(:broadcast_message) }

    it 'returns a 401 for anonymous users' do
      delete v3_api("/broadcast_messages/#{message.id}"),
        attributes_for(:broadcast_message)

      expect(response).to have_http_status(401)
    end

    it 'returns a 403 for users' do
      delete v3_api("/broadcast_messages/#{message.id}", user),
        attributes_for(:broadcast_message)

      expect(response).to have_http_status(403)
    end

    it 'deletes the broadcast message for admins' do
      expect do
        delete v3_api("/broadcast_messages/#{message.id}", admin)

        expect(response).to have_http_status(200)
      end.to change { BroadcastMessage.count }.by(-1)
    end
  end
end