# == Schema Information # # Table name: messages # # id :integer not null, primary key # sender_type :string(255) # sender_id :integer # recipient_type :string(255) # recipient_id :integer # title :string(255) # text :text # created_at :datetime # updated_at :datetime # text_parsed :text # require 'spec_helper' describe Message do let!(:user) { create :user } describe 'create' do let(:message) { build :message } it 'creates a new message' do expect(message.valid?).to eq(true) expect do message.save! end.to change(Message, :count).by(1) end end describe 'Permissions' do let(:message) { Message.new } describe 'can_create?' do it 'returns true for user' do expect(message.can_create?(user)).to be_truthy end it 'returns false if user is banned' do create :ban, :mute, user: user expect(message.can_create?(user)).to be_falsey end end describe 'can_show?' do let!(:message) { create :message } it 'returns true if sender' do expect(message.can_show?(message.sender)).to be_truthy end it 'returns true if receiver' do expect(message.can_show?(message.recipient)).to be_truthy end it 'returns false if neither sender nor receiver' do expect(message.can_show?(user)).to be_falsey end end end end