spec/grendel/user_spec.rb in grendel-ruby-0.1.4 vs spec/grendel/user_spec.rb in grendel-ruby-0.1.5

- old
+ new

@@ -2,46 +2,60 @@ describe "Grendel::User" do before do @client = Grendel::Client.new("http://grendel") end - + describe "new" do it "should strip the protocol and host from the uri" do user = Grendel::User.new(@client, :id => "alice", :uri => "http://grendel/users/alice") user.uri.should == "/users/alice" end end - + + describe "find" do + context "a non-existent user" do + it "raises a HTTPException with response code 404" do + stub_json_request(:get, 'http://grendel/users/idontexist', "", :status => [404, "Not Found"]) + begin + @client.users.find('idontexist', 'nordoi') + fail "HTTPException should have been raised but wasn't" + rescue Grendel::Client::HTTPException => e + e.response.code.should == 404 + end + end + end + end + describe "change_password" do before do @old_password = "s3kret" @new_password = "newpass" @user = Grendel::User.new(@client, :id => "alice", :password => @old_password) @url = "#{@user.id}:#{@user.password}@grendel/users/#{@user.id}" - stub_json_request(:put, @url, "", :status => "204 No Content") + stub_json_request(:put, @url, "", :status => [204, "No Content"]) end - + it "should send a properly-formatted request" do @user.change_password(@new_password) params = { "password" => @new_password } request(:put, @url).with(:body => params.to_json).should have_been_made.once end - + it "should return a User with the new password" do lambda { @user.change_password(@new_password) }.should change(@user, :password).from(@old_password).to(@new_password) end end - + describe "delete" do before do @user = Grendel::User.new(@client, :id => "alice", :password => "s3kret") @url = "#{@user.id}:#{@user.password}@grendel/users/#{@user.id}" - stub_json_request(:delete, @url, "", :status => "204 No Content") + stub_json_request(:delete, @url, "", :status => [204, "No Content"]) end - + it "should send a properly-formatted request" do @user.delete request(:delete, @url).should have_been_made.once end end