spec/controllers/cadenero/v1/accounts_controller_spec.rb in cadenero-0.0.2.a2 vs spec/controllers/cadenero/v1/accounts_controller_spec.rb in cadenero-0.0.2.a3
- old
+ new
@@ -1,25 +1,41 @@
require 'spec_helper'
module Cadenero
describe V1::AccountsController do
- context "creates the account's schema" do
+ let!(:account) { stub_model(Cadenero::V1::Account, id: 1001, authentication_token: "dsdaefer412add") }
+
+ before do
+ Cadenero::V1::Account.should_receive(:create_with_owner).and_return(account)
+ controller.stub(:force_authentication!)
+ end
- let!(:account) { stub_model(Cadenero::V1::Account) }
-
+ context "creates the account's schema" do
before do
- Cadenero::V1::Account.should_receive(:create_with_owner).and_return(account)
account.stub :valid? => true
- controller.stub(:force_authentication!)
- end
-
+ end
it "should create a schema and ensure a token is returned for the account on successful creation" do
account.should_receive(:create_schema)
account.should_receive(:ensure_authentication_token!)
- post :create, account: { name: "First Account", subdomain: "first" }, use_route: :cadenero
- expect(account.authentication_token).not_to eq nil
- end
+ post :create, format: :json, account: { name: "First Account", subdomain: "first" }, use_route: :cadenero
+ expect(response.status).to eq(201)
+ expect(assigns(:account)).to eq(account)
+ expect(assigns(:account)[:authentication_token]).to eq(account.authentication_token)
+ end
+ end
- end
+ context "when the message fails to save" do
+ before do
+ account.stub(:save).and_return(false)
+ account.stub :valid? => false
+ end
+ it "assigns @data to error" do
+ post :create, format: :json, account: {name: "First Account" }, use_route: :cadenero
+ expect(response.status).to eq(422)
+ expect(assigns(:data).to_json).to eq({
+ errors: account.errors
+ }.to_json)
+ end
+ end
end
end