From d55ba4fa5efb7af6741e99cdd029efe59ebfa5cd Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 12 Nov 2012 06:55:03 -0600 Subject: [PATCH] * verified instruments working VRFS-72 --- lib/jam_ruby/user_manager.rb | 12 ++++++------ spec/jam_ruby/user_manager_spec.rb | 11 +++++++++++ spec/spec_helper.rb | 2 +- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/jam_ruby/user_manager.rb b/lib/jam_ruby/user_manager.rb index 446f59de2..33b64b4ba 100644 --- a/lib/jam_ruby/user_manager.rb +++ b/lib/jam_ruby/user_manager.rb @@ -23,15 +23,15 @@ module JamRuby user.state = state user.country = country unless instruments.nil? - instruments.each_with_index do |musician_instrument_param, index| - instrument = Instrument.find(musician_instrument_param["id"]) + instruments.each do |musician_instrument_param| + instrument = Instrument.find(musician_instrument_param[:instrument_id]) musician_instrument = MusicianInstrument.new - musician_instrument.user = current_user + musician_instrument.user = user musician_instrument.instrument = instrument - musician_instrument.proficiency_level = musician_instrument_param["proficiency_level"] - musician_instrument.priority = index + musician_instrument.proficiency_level = musician_instrument_param[:proficiency_level] + musician_instrument.priority = musician_instrument_param[:priority] musician_instrument.save - user.instruments < musician_instrument + user.musician_instruments << musician_instrument end end user.signup_token = SecureRandom.urlsafe_base64 diff --git a/spec/jam_ruby/user_manager_spec.rb b/spec/jam_ruby/user_manager_spec.rb index f47c89c9a..74f8ef3ff 100644 --- a/spec/jam_ruby/user_manager_spec.rb +++ b/spec/jam_ruby/user_manager_spec.rb @@ -26,6 +26,17 @@ describe UserManager do UserMailer.deliveries.length.should == 1 end + it "signup successfully with instruments" do + @user = @user_manager.signup("bob", "bob@jamkazam.com", "foobar", "foobar", "Austin", "TX", "USA", + [{ :instrument_id => "electric guitar", :proficiency_level => 3, :priority => 0}], "http://localhost:3000/confirm" ) + + @user.errors.any?.should be_false + @user.instruments.length.should == 1 + musician_instrument = @user.musician_instruments[0] + musician_instrument.instrument.should == Instrument.find("electric guitar") + musician_instrument.proficiency_level.should == 3 + end + it "duplicate signup failure" do @user = @user_manager.signup("bob", "bob@jamkazam.com", "foobar", "foobar", "Austin", "TX", "USA", nil, "http://localhost:3000/confirm" ) UserMailer.deliveries.length.should == 1 diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d7084d430..214236359 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -47,7 +47,7 @@ Spork.prefork do config.before(:suite) do DatabaseCleaner.strategy = :transaction - DatabaseCleaner.clean_with(:truncation) + DatabaseCleaner.clean_with(:truncation, {:except => %w[instruments genres] }) end config.before(:each) do