65 lines
1.3 KiB
Ruby
65 lines
1.3 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe UsersController do
|
|
|
|
describe "#create" do
|
|
let(:user) { mock_model(User).as_null_object }
|
|
|
|
before do
|
|
User.stub(:new).and_return(user)
|
|
end
|
|
|
|
context "when user saved" do
|
|
let(:provider) { 'foo' }
|
|
let(:uid) { '123' }
|
|
let(:avatar_url) { 'url' }
|
|
|
|
before do
|
|
session[:new_user] = {
|
|
:provider => provider,
|
|
:uid => uid,
|
|
:avatar_url => avatar_url
|
|
}
|
|
|
|
user.stub!(:save => true)
|
|
end
|
|
|
|
it "assigns provider and uid" do
|
|
user.should_receive(:provider=).with(provider).and_return(true)
|
|
user.should_receive(:uid=).with(uid).and_return(true)
|
|
user.should_receive(:avatar_url=).with(avatar_url).and_return(true)
|
|
|
|
post :create
|
|
end
|
|
|
|
it "sets current_user" do
|
|
post :create
|
|
@controller.current_user.should_not be_nil
|
|
end
|
|
|
|
it "clears user session data" do
|
|
post :create
|
|
|
|
session[:new_user].should be_nil
|
|
end
|
|
|
|
it "redirects back" do
|
|
post :create
|
|
should redirect_to(root_url)
|
|
end
|
|
|
|
end
|
|
|
|
context "when not valid data" do
|
|
before do
|
|
user.stub!(:save => false)
|
|
end
|
|
|
|
it "renders user/new" do
|
|
post :create
|
|
should render_template('users/new')
|
|
end
|
|
end
|
|
end
|
|
end
|