diff --git a/spec/models/aspect_spec.rb b/spec/models/aspect_spec.rb index ae8adb5bd28bc76c3a6e17e5b703040a317ce34c..ff30f64c1266bfb3ac6903ea8a68b0d12e002612 100644 --- a/spec/models/aspect_spec.rb +++ b/spec/models/aspect_spec.rb @@ -59,8 +59,9 @@ describe Aspect do end it 'has no uniqueness between users' do + aspect = user.aspects.create(:name => "New Aspect") aspect2 = user2.aspects.create(:name => aspect.name) - aspect2.valid?.should be_true + aspect2.should be_valid end end @@ -76,7 +77,7 @@ describe Aspect do end it 'should have contacts' do - aspect.contacts.size.should == 1 + aspect.contacts.size.should == 2 end describe '#aspects_with_person' do diff --git a/spec/models/user/connecting_spec.rb b/spec/models/user/connecting_spec.rb index d276553525ff1e0b3ff2b3642612e8b8def9bae6..fb49ef4f64ed683e82d3bfcfa3e8aac743266b28 100644 --- a/spec/models/user/connecting_spec.rb +++ b/spec/models/user/connecting_spec.rb @@ -60,6 +60,12 @@ describe Diaspora::UserModules::Connecting do Request.where(:recipient_id => user.person.id).all.should include @r end + it 'creates no contact' do + lambda { + received_req = @r.receive(user, person_one) + }.should_not change(Contact, :count) + end + it 'enqueues a mail job' do Resque.should_receive(:enqueue).with(Jobs::MailRequestReceived, user.id, person.id) zord = Postzord::Receiver.new(user, :object => @r, :person => person) @@ -131,11 +137,6 @@ describe Diaspora::UserModules::Connecting do describe 'multiple users accepting/rejecting the same person' do before do - Request.where(:recipient_id => user.person.id).count.should == 0 - user.contacts.empty?.should be true - Request.where(:recipient_id => user2.person.id).count.should == 0 - user2.contacts.empty?.should be true - @request1 = Request.diaspora_initialize(:to => user.person, :from => person_one) @request2 = Request.diaspora_initialize(:to => user2.person, :from => person_one) @request3 = Request.diaspora_initialize(:to => user2.person, :from => user.person) @@ -214,29 +215,33 @@ describe Diaspora::UserModules::Connecting do describe 'a user accepting rejecting multiple people' do before do - @request = Request.diaspora_initialize(:to => user.person, :from => person_one) - @request_two = Request.diaspora_initialize(:to => user.person, :from => person_two) + request = Request.diaspora_initialize(:to => user.person, :from => person_one) + @received_request = request.receive(user, person_one) end - - it "keeps the right counts of contacts" do - received_req = @request.receive(user, person_one) - - Request.where(:recipient_id => user.person.id).count.should == 1 - user.reload.contacts.size.should be 0 - - received_req2 = @request_two.receive(user, person_two) - Request.where(:recipient_id => user.person.id).count.should == 2 - user.reload.contacts.size.should be 0 - - user.accept_contact_request received_req, aspect - Request.where(:recipient_id => user.person.id).count.should == 1 - user.reload.contacts.size.should be 1 - user.contact_for(person_one).should_not be_nil - - user.ignore_contact_request received_req2.id - Request.where(:recipient_id => user.person.id).count.should == 0 - user.reload.contacts.size.should be 1 - user.contact_for(person_two).should be_nil + describe '#accept_contact_request' do + it "deletes the received request" do + lambda { + user.accept_contact_request(@received_request, aspect) + }.should change(Request, :count).by(-1) + end + it "creates a new contact" do + lambda { + user.accept_contact_request(@received_request, aspect) + }.should change(Contact, :count).by(1) + user.contact_for(person_one).should_not be_nil + end + end + describe '#ignore_contact_request' do + it "removes the request" do + lambda { + user.ignore_contact_request(@received_request.id) + }.should change(Request, :count).by(-1) + end + it "creates no new contact" do + lambda { + user.ignore_contact_request(@received_request) + }.should_not change(Contact, :count) + end end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index ef1a485699ca6bdf3b8a5a3b0d885726bbb2ebbe..bf9eeac28123ea80985b9631efd5eae6d9cfd73d 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -16,9 +16,9 @@ describe User do describe 'overwriting people' do it 'does not overwrite old users with factory' do - new_user = Factory.create(:user, :id => user.id) - new_user.persisted?.should be_true - new_user.id.should_not == user.id + lambda { + new_user = Factory.create(:user, :id => user.id) + }.should raise_error ActiveRecord::RecordNotUnique end it 'does not overwrite old users with create' do params = {:username => "ohai", @@ -266,9 +266,9 @@ describe User do it "only pushes to non-pending contacts" do connect_users(user, aspect, user2, aspect2) - user.contacts.count.should == 1 - user.send_contact_request_to(Factory(:user).person, aspect) - user.contacts.count.should == 2 + lambda { + user.send_contact_request_to(Factory(:user).person, aspect) + }.should change(user.contacts, :count).by(1) m = mock() m.should_receive(:post) @@ -338,7 +338,9 @@ describe User do it 'should remove all aspects' do aspect - lambda {user.destroy}.should change{user.aspects.reload.count}.by(-1) + lambda { + user.destroy + }.should change{ user.aspects(true).count }.by(-2) end describe '#remove_person' do @@ -360,9 +362,10 @@ describe User do describe '#disconnect_everyone' do it 'should send retractions to remote poeple' do + person = user2.person user2.delete - user2.person.owner_id = nil - user2.person.save + person.owner_id = nil + person.save user.activate_contact(user2.person, aspect) user.should_receive(:disconnect).once diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2de47f3f60e9aa99821a96384b05b9cb890debfc..35323e43b772a36ba011c2c49dff7f36a98ee414 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -23,10 +23,10 @@ RSpec.configure do |config| config.mock_with :mocha config.mock_with :rspec + # config.fixture_path = "#{Rails.root}/spec/fixtures" + # config.global_fixtures = :all config.use_transactional_fixtures = true -# config.global_fixtures = :all - config.before(:each) do I18n.locale = :en RestClient.stub!(:post).and_return(FakeHttpRequest.new(:success)) diff --git a/spec/support/fixture_builder.rb b/spec/support/fixture_builder.rb index 658c56615fc9d3ca47600d8ee13f863344cf6c46..e6681b620168ace441279f8fae385ded652b7fde 100644 --- a/spec/support/fixture_builder.rb +++ b/spec/support/fixture_builder.rb @@ -11,6 +11,6 @@ FixtureBuilder.configure do |fbuilder| connect_users(bob, bob.aspects.first, alice, alice.aspects.first) connect_users(bob, bob.aspects.first, eve, eve.aspects.first) - end + end end