[MRG] fixed message deleting + added tests, closes #391 (#394)

* fixed message deleting + added tests

* hound, codeclimate, travis…
This commit is contained in:
Bastian Greshake
2017-06-08 10:19:30 +02:00
committed by GitHub
parent 7011c5ab90
commit f29752b550
3 changed files with 46 additions and 3 deletions

View File

@@ -44,14 +44,14 @@ class MessagesController < ApplicationController
end
def destroy
message = Message.where(from_id: current_user.id, id: params[:id]).first
message = Message.find_by(id: params[:id])
if message
message.destroy
flash[:notice] = 'Message deleted'
redirect_to '/users/' + current_user.id.to_s + '#messages'
else
render text: 'Unauthorized', status: :unauthorized
flash[:warning] = 'Something went wrong!'
end
redirect_to '/users/' + current_user.id.to_s + '#messages'
end
private

View File

@@ -0,0 +1,10 @@
# frozen_string_literal: true
FactoryGirl.define do
factory :message do
user
sent false
subject 'HELLO WORLD'
body 'THIS IS AN AWESOME MESSAGE'
end
end

View File

@@ -3,6 +3,39 @@ RSpec.feature 'Messaging' do
let!(:alice) { create(:user, name: 'Alice') }
let!(:bob) { create(:user, name: 'Bob') }
let!(:to_alice) do
create(:message, user: bob,
from_id: bob.id,
to_id: alice.id,
sent: true,
subject: 'Delete Me')
end
let!(:from_bob) do
create(:message, user: alice,
from_id: bob.id,
to_id: alice.id,
subject: 'Delete Me')
end
scenario 'user successfully deletes message' do
sign_in(alice)
click_on('Alice')
click_on('Messages')
click_on('Delete Me')
click_on('Delete')
expect(page).to have_content('Message deleted')
end
scenario 'user tries reading other ppls messages' do
sign_in(alice)
visit "/messages/#{to_alice.id}"
expect(page).to have_content('Oops! Thats none of your business')
end
scenario 'a user sends a messages' do
sign_in(alice)