spec/statrapator/client/user_spec.rb in statraptor-0.2.2 vs spec/statrapator/client/user_spec.rb in statraptor-0.2.3
- old
+ new
@@ -1,35 +1,81 @@
require 'spec_helper'
describe StatRaptor::Client::Users do
let(:client) { StatRaptor::Client.new }
- context "#create", :vcr do
+ describe "#create_user", :vcr do
it "returns a user hash on success" do
email = random_email
user = client.create_user(:email => email, :chargify_api_key => "ABC123")
user["user_credentials"].should_not be_nil
user["chargify_api_key"].should == "ABC123"
user["email"].should == email
end
end
- context "#delete_user", :vcr do
+ describe "#delete_user", :vcr do
it "returns the user hash on success" do
email = random_email
user = client.create_user(:email => email, :chargify_api_key => "XYZ123")
deleted_user = client.delete_user(user["user_credentials"])
deleted_user["user_credentials"].should == user["user_credentials"]
deleted_user["chargify_api_key"].should == "XYZ123"
deleted_user["email"].should == email
end
end
- context "#get_users", :vcr do
+ describe "#get_users", :vcr do
it "returns an array of hashes" do
users = client.get_users
users.count.should > 1
users.should be_a(Array)
users.first.should be_a(Hash)
+ end
+ end
+
+ describe "#find_or_create_user" do
+ it "returns the user hash if the user already exists" do
+ email = random_email
+ user = client.create_user(:email => email, :chargify_api_key => "ABCDEF")
+
+ lambda {
+ @user = client.find_or_create_user(:email => email, :chargify_api_key => "ABCDEF")
+ }.should_not raise_error(StatRaptor::Error)
+
+ @user['user_credentials'].should == user['user_credentials']
+ @user['chargify_api_key'].should == user['chargify_api_key']
+ @user['email'].should == user['email']
+ end
+
+ it "creates a new user if the user does not exist" do
+ email = random_email
+ user = client.find_or_create_user(:email => email, :chargify_api_key => "123456")
+ user["user_credentials"].should_not be_nil
+ user['chargify_api_key'].should == "123456"
+ user['email'].should == email
+ end
+ end
+
+ describe "#get_user", :vcr do
+ it "raises a NotImplementedError" do
+ lambda {
+ client.get_user('leroy-jenkins')
+ }.should raise_error(NotImplementedError)
+ end
+
+ it "raises a StatRaptor::Error::NotFound if the user doesn't exist", :pending => true do
+ lambda {
+ client.get_user("silly-fake-user")
+ }.should raise_error(StatRaptor::Error::NotFound)
+ end
+
+ it "returns a user hash if the user is found", :pending => true do
+ email = random_email
+ existing_user = client.create_user(:email => email, :chargify_api_key => "foobar-123")
+ user = client.get_user(existing_user["user_credentials"])
+ user['user_credentials'].should == existing_user["user_credentials"]
+ user['chargify_api_key'].should == 'foobar-123'
+ user['email'].should == email
end
end
end