spec/features/users/sign_up_spec.rb in cadenero-0.0.2.b3 vs spec/features/users/sign_up_spec.rb in cadenero-0.0.2.b4
- old
+ new
@@ -1,27 +1,32 @@
require 'spec_helper'
+require 'cadenero/testing_support/authentication_helpers'
-def create_account_user
- @user ||= { email: "user@example.com", password: "password", password_confirmation: "password" }
-end
-
-def find_account_by_email
- @account = Cadenero::V1::Account.where(name: @user[:email]).first
-end
-
-def sign_up_user(url)
- create_account_user
- post "#{url}/v1/users", format: :json, user: @user
- find_account_by_email
-end
-
feature "User signup" do
- let(:account) { FactoryGirl.create(:account_with_schema) }
+ include Cadenero::TestingSupport::AuthenticationHelpers
+
+ let!(:account) { FactoryGirl.create(:account_with_schema) }
let(:root_url) { "http://#{account.subdomain}.example.com/" }
scenario "under an account" do
sign_up_user root_url
expect(last_response.status).to eq 201
- puts "last_response.body: #{last_response.body}"
- expect(JSON.parse(last_response.body)["user"]["membership_ids"]).to eq [account.id]
+ expect(json_last_response_body["user"]["membership_ids"]).to eq [account.id]
expect(last_request.url).to eq "#{root_url}v1/users"
+ get "#{root_url}v1/users/#{json_last_response_body['user']['id']}"
+ expect(json_last_response_body["user"]["membership_ids"]).to eq [account.id]
end
+
+ scenario "under two accounts" do
+ sign_up_user root_url
+ user_id = json_last_response_body['user']['id']
+ get "#{root_url}v1/users/#{user_id}"
+ expect(json_last_response_body["user"]["membership_ids"]).to eq [account.id]
+ second_account = FactoryGirl.create(:account_with_schema, owner: Cadenero::User.where(id: user_id).first)
+ sign_up_user "http://#{second_account.subdomain}.example.com/"
+ expect(json_last_response_body["user"]["membership_ids"]).to eq [second_account.id]
+ get "#{root_url}v1/users/#{user_id}"
+ expect(json_last_response_body["user"]["membership_ids"]).to eq [account.id, second_account.id]
+ get "#{root_url}v1/users"
+ expect(json_last_response_body["users"].length).to eq 2
+ end
+
end
\ No newline at end of file