accepting an invitation correctly adds the request to the user
This commit is contained in:
parent
3a8c82c7b4
commit
9ca54a2282
3 changed files with 39 additions and 10 deletions
|
|
@ -41,9 +41,8 @@ class InvitationsController < Devise::InvitationsController
|
|||
def update
|
||||
begin
|
||||
user = User.find_by_invitation_token(params[:user][:invitation_token])
|
||||
user.accept_invitation!(params[:user])
|
||||
user.seed_aspects
|
||||
user.save
|
||||
user.accept_invitation!(params[:user])
|
||||
rescue MongoMapper::DocumentNotValid => e
|
||||
user = nil
|
||||
flash[:error] = e.message
|
||||
|
|
|
|||
|
|
@ -350,7 +350,8 @@ class User
|
|||
self.person.save!
|
||||
self.save!
|
||||
invitations_to_me.each{|invitation| invitation.to_request!}
|
||||
|
||||
|
||||
self.reload # Because to_request adds a request and saves elsewhere
|
||||
self
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -11,18 +11,22 @@ describe InvitationsController do
|
|||
|
||||
let!(:user) {make_user}
|
||||
let!(:aspect){user.aspects.create(:name => "WIN!!")}
|
||||
|
||||
|
||||
before do
|
||||
request.env["devise.mapping"] = Devise.mappings[:user]
|
||||
user.invites = 5
|
||||
|
||||
sign_in :user, user
|
||||
@invite = {:invite_messages=>"test", :aspects=> aspect.id.to_s, :email=>"abc@example.com"}
|
||||
@controller.stub!(:current_user).and_return(user)
|
||||
request.env["HTTP_REFERER"]= 'http://test.host/cats/foo'
|
||||
end
|
||||
|
||||
|
||||
describe "#create" do
|
||||
before do
|
||||
user.invites = 5
|
||||
|
||||
sign_in :user, user
|
||||
@invite = {:invite_messages=>"test", :aspects=> aspect.id.to_s, :email=>"abc@example.com"}
|
||||
@controller.stub!(:current_user).and_return(user)
|
||||
request.env["HTTP_REFERER"]= 'http://test.host/cats/foo'
|
||||
end
|
||||
|
||||
it 'invites the requested user' do
|
||||
user.should_receive(:invite_user).and_return(make_user)
|
||||
post :create, :user => @invite
|
||||
|
|
@ -72,5 +76,30 @@ describe InvitationsController do
|
|||
response.should redirect_to("http://test.host/cats/foo")
|
||||
end
|
||||
end
|
||||
|
||||
describe "#update" do
|
||||
before do
|
||||
user.invites = 5
|
||||
invited_user = user.invite_user(:email => "a@a.com", :aspect_id => user.aspects.first.id)
|
||||
@accept_params = {"user"=>{"password_confirmation"=>"password", "username"=>"josh",
|
||||
"password"=>"password", "invitation_token" => invited_user.invitation_token}}
|
||||
|
||||
end
|
||||
|
||||
it 'creates user' do
|
||||
put :update, @accept_params
|
||||
User.find_by_username(@accept_params['user']['username']).should_not be_nil
|
||||
end
|
||||
|
||||
it 'seeds the aspects' do
|
||||
put :update, @accept_params
|
||||
User.find_by_username(@accept_params['user']['username']).aspects.count.should == 2
|
||||
end
|
||||
|
||||
it 'adds a pending request' do
|
||||
put :update, @accept_params
|
||||
User.find_by_username(@accept_params['user']['username']).pending_requests.count.should == 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue