handle nil sis_communication_channels appropriately
refs sis batch id 8860, error report 2538380 Change-Id: I6576ee0a38fc163e88746d753ddd3400b54f21c9 Reviewed-on: https://gerrit.instructure.com/5712 Reviewed-by: Brian Palmer <brianp@instructure.com> Tested-by: Hudson <hudson@instructure.com>
This commit is contained in:
parent
7c11fdc668
commit
9016452480
|
@ -167,7 +167,7 @@ module SIS
|
|||
if comm.user_id != pseudo.user_id
|
||||
add_warning(csv, "E-mail address #{row['email']} for user #{row['login_id']} is already claimed; ignoring")
|
||||
else
|
||||
pseudo.sis_communication_channel.destroy if pseudo.sis_communication_channel != comm
|
||||
pseudo.sis_communication_channel.destroy if pseudo.sis_communication_channel != comm and !pseudo.sis_communication_channel.nil?
|
||||
pseudo.sis_communication_channel = comm
|
||||
pseudo.communication_channel_id = comm.id
|
||||
comm.do_delayed_jobs_immediately = true
|
||||
|
|
|
@ -903,6 +903,35 @@ describe SIS::SisCsv do
|
|||
p.communication_channel_id.should == user1.communication_channels.unretired.first.id
|
||||
end
|
||||
|
||||
it "should work when a communication channel already exists, but there's no sis_communication_channel" do
|
||||
importer = process_csv_data_cleanly(
|
||||
"user_id,login_id,first_name,last_name,email,status",
|
||||
"user_1,user1,User,Uno,,active"
|
||||
)
|
||||
p = Pseudonym.find_by_unique_id('user1')
|
||||
user1 = p.user
|
||||
user1.last_name.should == "Uno"
|
||||
user1.pseudonyms.count.should == 1
|
||||
p.communication_channel_id.should be_nil
|
||||
user1.communication_channels.count.should == 0
|
||||
p.sis_communication_channel_id.should be_nil
|
||||
user1.communication_channels.create!(:path => 'user2@example.com', :path_type => 'email') { |cc| cc.workflow_state = 'active' }
|
||||
|
||||
importer = process_csv_data_cleanly(
|
||||
"user_id,login_id,first_name,last_name,email,status",
|
||||
"user_1,user1,User,Uno,user2@example.com,active"
|
||||
)
|
||||
p.reload
|
||||
user1.reload
|
||||
user1.pseudonyms.count.should == 1
|
||||
user1.communication_channels.count.should == 1
|
||||
user1.communication_channels.unretired.count.should == 1
|
||||
p.communication_channel_id.should_not be_nil
|
||||
user1.communication_channels.unretired.first.path.should == 'user2@example.com'
|
||||
p.sis_communication_channel_id.should == p.communication_channel_id
|
||||
p.communication_channel_id.should == user1.communication_channels.unretired.first.id
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'enrollment importing' do
|
||||
|
|
Loading…
Reference in New Issue