From 4c2d4958fedebeb7e3098f9243ecfd53639c7391 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Tue, 31 Mar 2015 20:25:23 -0500 Subject: [PATCH] VRFS-2894 Update email / user info in recurly upon finalize. Test to verify. --- ruby/lib/jam_ruby/models/user.rb | 5 ++++ ruby/lib/jam_ruby/recurly_client.rb | 5 ++++ ruby/spec/jam_ruby/models/user_spec.rb | 34 ++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index d41a68884..8cc54d7b4 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -868,6 +868,11 @@ module JamRuby user.email = user.update_email user.update_email_token = nil user.save + begin + RecurlyClient.new.update_account(user) + rescue Recurly::Error + @@log.debug("No recurly account found; continuing") + end return user end diff --git a/ruby/lib/jam_ruby/recurly_client.rb b/ruby/lib/jam_ruby/recurly_client.rb index 6b12332a0..516aa7235 100644 --- a/ruby/lib/jam_ruby/recurly_client.rb +++ b/ruby/lib/jam_ruby/recurly_client.rb @@ -22,6 +22,11 @@ module JamRuby account end + def has_account?(current_user) + account = get_account(current_user) + !!account + end + def delete_account(current_user) account = get_account(current_user) if (account) diff --git a/ruby/spec/jam_ruby/models/user_spec.rb b/ruby/spec/jam_ruby/models/user_spec.rb index 6d51c9b6e..1d6b0f40f 100644 --- a/ruby/spec/jam_ruby/models/user_spec.rb +++ b/ruby/spec/jam_ruby/models/user_spec.rb @@ -1,4 +1,5 @@ require 'spec_helper' +require 'jam_ruby/recurly_client' RESET_PASSWORD_URL = "/reset_token" @@ -9,6 +10,7 @@ describe User do @user = User.new(first_name: "Example", last_name: "User", email: "user@example.com", password: "foobar", password_confirmation: "foobar", city: "Apex", state: "NC", country: "US", terms_of_service: true, musician: true) @user.musician_instruments << FactoryGirl.build(:musician_instrument, user: @user) + @recurly = RecurlyClient.new end subject { @user } @@ -434,6 +436,8 @@ describe User do describe "finalize email update" do before do + @recurly.has_account?(@user).should == false + @user.begin_update_email("somenewemail@blah.com", "foobar", "http://www.jamkazam.com/confirm_email_update?token=") UserMailer.deliveries.clear end @@ -464,6 +468,36 @@ describe User do end end + describe "finalize email updates recurly" do + before do + + @user.begin_update_email("somenewemail@blah.com", "foobar", "http://www.jamkazam.com/confirm_email_update?token=") + UserMailer.deliveries.clear + billing_info = { + first_name: @user.first_name, + last_name: @user.last_name, + address1: 'Test Address 1', + address2: 'Test Address 2', + city: @user.city, + state: @user.state, + country: @user.country, + zip: '12345', + number: '4111-1111-1111-1111', + month: '08', + year: '2017', + verification_value: '111' + } + @recurly.find_or_create_account(@user, billing_info) + end + + it "should update recurly" do + @recurly.has_account?(@user).should == true + @recurly.get_account(@user).email.should_not == "somenewemail@blah.com" + @finalized = User.finalize_update_email(@user.update_email_token) + @recurly.get_account(@user).email.should == "somenewemail@blah.com" + end + end + describe "user_authorizations" do it "can create" do