broadcast_messages_spec.rb 910 Bytes
Newer Older
Robert Schilling's avatar
Robert Schilling committed
1 2
require 'spec_helper'

3
describe API::V3::BroadcastMessages do
Rémy Coutable's avatar
Rémy Coutable committed
4 5
  set(:user)  { create(:user) }
  set(:admin) { create(:admin) }
Robert Schilling's avatar
Robert Schilling committed
6 7

  describe 'DELETE /broadcast_messages/:id' do
Rémy Coutable's avatar
Rémy Coutable committed
8
    set(:message) { create(:broadcast_message) }
Robert Schilling's avatar
Robert Schilling committed
9 10 11 12 13

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

14
      expect(response).to have_gitlab_http_status(401)
Robert Schilling's avatar
Robert Schilling committed
15 16 17 18 19 20
    end

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

21
      expect(response).to have_gitlab_http_status(403)
Robert Schilling's avatar
Robert Schilling committed
22 23 24 25 26 27
    end

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

28
        expect(response).to have_gitlab_http_status(200)
Robert Schilling's avatar
Robert Schilling committed
29 30 31 32
      end.to change { BroadcastMessage.count }.by(-1)
    end
  end
end