Don't expect raises in request specs, redirect to :back on all requesting

This commit is contained in:
Raphael 2010-11-16 16:15:37 -08:00
parent 538c6ce4b9
commit f3a301d314
2 changed files with 33 additions and 41 deletions

View file

@ -10,6 +10,7 @@ describe RequestsController do
@user = make_user
sign_in :user, @user
request.env["HTTP_REFERER"] = "http://test.host"
@user.aspects.create!(:name => "lame-os")
@user.reload
@ -22,7 +23,6 @@ describe RequestsController do
@other_user.reload
@other_user.send_contact_request_to(@user.person, @other_user.aspects.first)
@user.reload # so it can find its pending requests.
@friend_request = @user.pending_requests.first
end
@ -42,52 +42,41 @@ describe RequestsController do
describe '#create' do
it "redirects when requesting to be contacts with yourself" do
put(:create, {
:destination_handle => @user.diaspora_handle,
:aspect_id => @user.aspects[0].id
post(:create, :request => {
:to => @user.diaspora_handle,
:into => @user.aspects[0].id
}
)
response.should redirect_to aspects_manage_path
response.should redirect_to :back
end
it "flashes and redirects when requesting an invalid identity" do
put(:create, {
:destination_handle => "not_a_@valid_email",
:aspect_id => @user.aspects[0].id
}
post(:create, :request => {
:to => "not_a_@valid_email",
:into => @user.aspects[0].id
}
)
flash[:error].should_not be_blank
response.should redirect_to aspects_manage_path
response.should redirect_to :back
end
it "flashes and redirects when requesting an invalid identity with a port number" do
put(:create, {
:destination_handle => "johndoe@email.com:3000",
:aspect_id => @user.aspects[0].id
post(:create, :request => {
:to => "johndoe@email.com:3000",
:into => @user.aspects[0].id
}
)
flash[:error].should_not be_blank
response.should redirect_to aspects_manage_path
response.should redirect_to :back
end
it "redirects when requesting an identity from an invalid server" do
stub_request(:get, /notadiasporaserver\.com/).to_raise(Errno::ETIMEDOUT)
put(:create, {
:destination_handle => "johndoe@notadiasporaserver.com",
:aspect_id => @user.aspects[0].id
post(:create, :request => {
:to => "johndoe@notadiasporaserver.com",
:into => @user.aspects[0].id
}
)
response.should redirect_to aspects_manage_path
end
it 'should redirect to the page which you called it from ' do
pending "This controller should probably redirect to :back"
put(:create, {
:destination_handle => "johndoe@notadiasporaserver.com",
:aspect_id => @user.aspects[0].id
}
)
response.should redirect_to(:back)
response.should redirect_to :back
end
end
end

View file

@ -17,8 +17,7 @@ describe Diaspora::UserModules::Connecting do
let(:user2) { make_user }
let(:aspect2) { user2.aspects.create(:name => "aspect two") }
context 'contact requesting' do
describe '#send_contact_request_to' do
it "should assign a request to a aspect for the user that sent it out" do
aspect.requests.size.should == 0
@ -27,7 +26,9 @@ describe Diaspora::UserModules::Connecting do
aspect.reload
aspect.requests.size.should == 1
end
end
context 'contact requesting' do
describe '#receive_contact_request' do
it 'adds a request to pending if it was not sent by user' do
r = Request.instantiate(:to => user.person, :from => person)
@ -51,27 +52,27 @@ describe Diaspora::UserModules::Connecting do
let(:request_from_myself) {Request.instantiate(:to => user.person, :from => user.person)}
before do
request_for_user.save
user.receive_request(request_for_user, person)
user.receive_request(request2_for_user, person_one)
user.receive(request_for_user.to_diaspora_xml, person)
@received_request = Request.first(:from_id => request_for_user.from.id, :to_id => user.person.id, :sent => false)
user.receive(request2_for_user.to_diaspora_xml, person_one)
@received_request2 = Request.first(:from_id => request2_for_user.from.id, :to_id => user.person.id, :sent => false)
user.reload
end
it "should delete an accepted contact request" do
proc { user.accept_contact_request(request2_for_user, aspect) }.should change(
user.reload.pending_requests, :count ).by(-1)
proc {
user.accept_contact_request(@received_request, aspect)
}.should change(user.reload.pending_requests, :count ).by(-1)
end
it 'should be able to ignore a pending contact request' do
proc { user.ignore_contact_request(request_for_user.id) }.should change(
proc { user.ignore_contact_request(@received_request.id) }.should change(
user.reload.pending_requests, :count ).by(-1)
end
it 'should ignore a contact request from yourself' do
reversed_request = request_from_myself.reverse_for(user)
user.pending_requests.delete_all
user.save
proc { user.receive_contact_request(reversed_request)
}.should raise_error /request from himself/
end
@ -79,11 +80,13 @@ describe Diaspora::UserModules::Connecting do
it 'should not be able to contact request an existing contact' do
connect_users(user, aspect, user2, aspect2)
proc { user.send_contact_request_to(user2.person, aspect1) }.should raise_error /already connected/
proc { user.send_contact_request_to(user2.person, aspect1)
}.should raise_error(MongoMapper::DocumentNotValid, /already connected/)
end
it 'should not be able to contact request yourself' do
proc { user.send_contact_request_to(nil, aspect) }.should raise_error(RuntimeError, /connect yourself/)
proc { user.send_contact_request_to(nil, aspect)
}.should raise_error(MongoMapper::DocumentNotValid)
end
it 'should send an email on acceptance if a contact request' do