Add sis_id to memberships payload if present
closes PLAT-4891, Plat-4892 Test Plan: - with a membership service call see that the sis id is added to the payload if it exists - see that it also is not added if one does not exist Change-Id: Ib9723411648b7499a8c60435a522e437646e94de Reviewed-on: https://gerrit.instructure.com/210816 Tested-by: Jenkins Reviewed-by: Weston Dransfield <wdransfield@instructure.com> QA-Review: Weston Dransfield <wdransfield@instructure.com> Product-Review: Karl Lloyd <karl@instructure.com>
This commit is contained in:
parent
e482c442c4
commit
1fd92a0ffa
|
@ -37,7 +37,7 @@ module Lti
|
|||
private
|
||||
|
||||
def membership_type
|
||||
User.preload(:communication_channels, :not_ended_enrollments)
|
||||
User.preload(:communication_channels, :not_ended_enrollments, :pseudonym)
|
||||
end
|
||||
|
||||
def users
|
||||
|
@ -53,7 +53,8 @@ module Lti
|
|||
img: user.avatar_image_url,
|
||||
email: user.email,
|
||||
result_sourced_id: nil,
|
||||
user_id: user_id
|
||||
user_id: user_id,
|
||||
sourced_id: user&.pseudonym&.sis_user_id
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
@ -145,6 +145,8 @@ module Lti::MembershipService
|
|||
end
|
||||
|
||||
context 'course with multiple users' do
|
||||
let(:user_sis_id) { "user_sis_id_01" }
|
||||
|
||||
before(:each) do
|
||||
course_with_teacher
|
||||
@course.enroll_user(@teacher, 'TeacherEnrollment', enrollment_state: 'active')
|
||||
|
@ -152,7 +154,9 @@ module Lti::MembershipService
|
|||
@course.enroll_user(@ta, 'TaEnrollment', enrollment_state: 'active')
|
||||
@designer = user_model
|
||||
@course.enroll_user(@designer, 'DesignerEnrollment', enrollment_state: 'active')
|
||||
@student = user_model
|
||||
@student = user_with_managed_pseudonym(:active_all => true, :account => @account, :name => "John St. Clair",
|
||||
:sortable_name => "St. Clair, John", :username => 'john@stclair.com',
|
||||
:sis_user_id => user_sis_id, integration_id: 'int1')
|
||||
@course.enroll_user(@student, 'StudentEnrollment', enrollment_state: 'active')
|
||||
@observer = user_model
|
||||
@course.enroll_user(@observer, 'ObserverEnrollment', enrollment_state: 'active')
|
||||
|
@ -183,6 +187,19 @@ module Lti::MembershipService
|
|||
expect(student.role).to match_array([IMS::LIS::Roles::Context::URNs::Learner])
|
||||
expect(observer.role).to match_array([IMS::LIS::Roles::Context::URNs::Learner_NonCreditLearner])
|
||||
end
|
||||
|
||||
it 'adds the sis_id to the payload if present' do
|
||||
collator = CourseLisPersonCollator.new(@course, @teacher)
|
||||
memberships = collator.memberships
|
||||
|
||||
@teacher.reload
|
||||
@student.reload
|
||||
|
||||
teacher = memberships.find { |m| m.member.user_id == @teacher.lti_context_id }
|
||||
student = memberships.find { |m| m.member.user_id == @student.lti_context_id }
|
||||
|
||||
expect(student.member.sourced_id).to eq user_sis_id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue