Skip to content
This repository has been archived by the owner on Jun 5, 2020. It is now read-only.

Commit

Permalink
clean up specs and test activities that don't cache fields
Browse files Browse the repository at this point in the history
  • Loading branch information
christospappas committed Jan 3, 2012
1 parent 3cb5816 commit c9a3c3e
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 58 deletions.
15 changes: 13 additions & 2 deletions spec/app/models/activity.rb
@@ -1,10 +1,21 @@
class Activity
include Streama::Activity

activity :enquiry do
activity :new_enquiry do
actor :user, :cache => [:full_name]
object :enquiry, :cache => [:subject]
object :enquiry, :cache => [:comment]
target :listing, :cache => [:title]
end

activity :new_enquiry_without_cache do
actor :user
object :enquiry
target :listing
end

activity :new_comment do
actor :user, :cache => [:full_name]
object :listing
end

end
42 changes: 31 additions & 11 deletions spec/lib/activity_spec.rb
Expand Up @@ -6,29 +6,49 @@
let(:listing) { Listing.create(:title => "A test listing") }
let(:user) { User.create(:full_name => "Christos") }

describe '.activity' do
describe ".activity" do
it "registers and return a valid definition" do
@definition = Activity.activity(:new_enquiry) do
@definition = Activity.activity(:test_activity) do
actor :user, :cache => [:full_name]
object :enquiry, :cache => [:comment]
object :listing, :cache => [:title, :full_address]
target :listing, :cache => [:title]
end

@definition.is_a?(Streama::Definition).should be true
end

end

describe '#publish' do
describe "#publish" do

before :each do
@send_to = []
2.times { |n| @send_to << User.create(:full_name => "Custom Receiver #{n}") }
5.times { |n| User.create(:full_name => "Receiver #{n}") }
end

it "pushes activity to receivers" do
@activity = Activity.publish(:new_enquiry, {:actor => user, :object => enquiry, :target => listing, :receivers => @send_to})
@activity.receivers.size.should == 2
end


context "when activity not cached" do

it "pushes activity to receivers" do
@activity = Activity.publish(:new_enquiry_without_cache, {:actor => user, :object => enquiry, :target => listing, :receivers => @send_to})
@activity.receivers.size.should == 2
end

end

it "overrides the recievers if option passed" do
send_to = []
2.times { |n| send_to << User.create(:full_name => "Custom Receiver #{n}") }
5.times { |n| User.create(:full_name => "Receiver #{n}") }
@activity = Activity.publish(:new_enquiry, {:actor => user, :object => enquiry, :target => listing, :receivers => send_to})
@activity = Activity.publish(:new_enquiry, {:actor => user, :object => enquiry, :target => listing, :receivers => @send_to})
@activity.receivers.size.should == 2
end



context "when republishing"
before :each do
@actor = user
Expand All @@ -44,14 +64,14 @@
end
end

describe '.publish' do
describe ".publish" do
it "creates a new activity" do
activity = Activity.publish(:new_enquiry, {:actor => user, :object => enquiry, :target => listing})
activity.should be_an_instance_of Activity
end
end

describe '#refresh' do
describe "#refresh" do

before :each do
@user = user
Expand All @@ -70,7 +90,7 @@

end

describe '#load_instance' do
describe "#load_instance" do

before :each do
@activity = Activity.publish(:new_enquiry, {:actor => user, :object => enquiry, :target => listing})
Expand Down
68 changes: 23 additions & 45 deletions spec/lib/actor_spec.rb
Expand Up @@ -6,61 +6,39 @@
let(:listing) { Listing.create(:title => "A test listing") }
let(:user) { User.create(:full_name => "Christos") }

new_activities = [:new_enquiry, :new_enquiry_without_cache]

before :all do
Activity.activity :new_comment do
actor :user, :cache => [:full_name]
object :listing, :cache => [:title]
target :listing, :cache => [:title]
describe "#publish_activity" do
before :each do
2.times { |n| User.create(:full_name => "Receiver #{n}") }
end

Activity.activity :new_enquiry_without_cache do
actor :user
object :enquiry
object :listing
target :listing
it "pushes activity to receivers" do
activity = user.publish_activity(:new_enquiry, :object => enquiry, :target => listing)
activity.receivers.size == 6
end

end

new_activities.each do |new_activity|
describe "#publish_activity" do
before :each do
5.times { |n| User.create(:full_name => "Receiver #{n}") }
end

it "pushes activity to receivers" do
activity = user.publish_activity(new_activity, :object => enquiry, :target => listing)
activity.receivers.size == 6
end

it "pushes to a defined stream" do
activity = user.publish_activity(new_activity, :object => enquiry, :target => listing, :receivers => :friends)
activity.receivers.size == 6
end
it "pushes to a defined stream" do
activity = user.publish_activity(:new_enquiry, :object => enquiry, :target => listing, :receivers => :friends)
activity.receivers.size == 6
end

end

new_activities.each do |new_activity|
describe "#activity_stream" do

before :each do
5.times { |n| User.create(:full_name => "Receiver #{n}") }
user.publish_activity(new_activity, :object => enquiry, :target => listing)
user.publish_activity(:new_comment, :object => listing)
end

it "retrieves the stream for an actor" do
user.activity_stream.size.should eq 2
end
describe "#activity_stream" do

before :each do
2.times { |n| User.create(:full_name => "Receiver #{n}") }
user.publish_activity(:new_enquiry, :object => enquiry, :target => listing)
user.publish_activity(:new_comment, :object => listing)
end

it "retrieves the stream and filters to a particular activity type" do
user.activity_stream(:type => :new_comment).size.should eq 1
end
it "retrieves the stream for an actor" do
user.activity_stream.size.should eq 2
end

it "retrieves the stream and filters to a particular activity type" do
user.activity_stream(:type => :new_enquiry).size.should eq 1
end

end


Expand Down

0 comments on commit c9a3c3e

Please sign in to comment.