-
Marcelo Briones a rédigéMarcelo Briones a rédigé
participation_spec.rb 1,92 Kio
require "spec_helper"
describe Participation, :type => :model do
describe 'it is relayable' do
before do
@status = bob.post(:status_message, :text => "hello", :to => bob.aspects.first.id)
@local_luke, @local_leia, @remote_raphael = set_up_friends
@remote_parent = FactoryGirl.create(:status_message, :author => @remote_raphael)
@local_parent = @local_luke.post :status_message, :text => "foobar", :to => @local_luke.aspects.first
@object_by_parent_author = @local_luke.participate!(@local_parent)
@object_by_recipient = @local_leia.participate!(@local_parent)
@dup_object_by_parent_author = @object_by_parent_author.dup
@object_on_remote_parent = @local_luke.participate!(@remote_parent)
end
let(:build_object) { Participation::Generator.new(alice, @status).build }
it_should_behave_like 'it is relayable'
end
describe "#unparticipate" do
before do
@status = bob.post(:status_message, text: "hello", to: bob.aspects.first.id)
@like = alice.like!(@status)
end
it "retract participation" do
@like.author.participations.first.unparticipate!
participations = Participation.where(target_id: @like.target_id, author_id: @like.author_id)
expect(participations.count).to eq(0)
end
it "retract one of multiple participations" do
comment = alice.comment!(@status, "bro")
comment.author.participations.first.unparticipate!
participations = Participation.where(target_id: @like.target_id, author_id: @like.author_id)
expect(participations.count).to eq(1)
expect(participations.first.count).to eq(1)
end
it "retract all of multiple participations" do
alice.comment!(@status, "bro")
alice.participations.first.unparticipate!
alice.participations.first.unparticipate!
expect(Participation.where(target_id: @like.target_id, author_id: @like.author_id).count).to eq(0)
end
end
end