diff --git a/gems/lti-advantage/lib/lti_advantage/claims/names_and_roles_service.rb b/gems/lti-advantage/lib/lti_advantage/claims/names_and_roles_service.rb index 297189003e8..88a386496ee 100644 --- a/gems/lti-advantage/lib/lti_advantage/claims/names_and_roles_service.rb +++ b/gems/lti-advantage/lib/lti_advantage/claims/names_and_roles_service.rb @@ -7,8 +7,8 @@ module LtiAdvantage::Claims include ActiveModel::Model attr_accessor :context_memberships_url, - :service_version + :service_versions - validates_presence_of :context_memberships_url, :service_version + validates_presence_of :context_memberships_url, :service_versions end end diff --git a/lib/lti/messages/jwt_message.rb b/lib/lti/messages/jwt_message.rb index 92f75d6659a..9c0c6acabe6 100644 --- a/lib/lti/messages/jwt_message.rb +++ b/lib/lti/messages/jwt_message.rb @@ -137,7 +137,7 @@ module Lti::Messages def add_names_and_roles_service_claims! @message.names_and_roles_service.context_memberships_url = @expander.controller.polymorphic_url([@context, :names_and_roles]) - @message.names_and_roles_service.service_version = '2.0' + @message.names_and_roles_service.service_versions = ['2.0'] end def expand_variable(variable) diff --git a/spec/lib/lti/messages/jwt_message_spec.rb b/spec/lib/lti/messages/jwt_message_spec.rb index 2e7ee9ca869..a779576889a 100644 --- a/spec/lib/lti/messages/jwt_message_spec.rb +++ b/spec/lib/lti/messages/jwt_message_spec.rb @@ -248,6 +248,16 @@ describe Lti::Messages::JwtMessage do end end + shared_examples 'names and roles claim check' do + it 'sets the NRPS url' do + expect(message_names_and_roles_service['context_memberships_url']).to eq 'polymorphic_url' + end + + it 'sets the NRPS version' do + expect(message_names_and_roles_service['service_versions']).to eq ['2.0'] + end + end + describe 'names and roles' do let(:message_names_and_roles_service) { decoded_jwt['https://purl.imsglobal.org/spec/lti-nrps/claim/namesroleservice'] } @@ -285,12 +295,8 @@ describe Lti::Messages::JwtMessage do course.root_account.save! end - it 'sets the NRPS url' do - expect(message_names_and_roles_service['context_memberships_url']).to eq 'polymorphic_url' - end - - it 'sets the NRPS version' do - expect(message_names_and_roles_service['service_version']).to eq '2.0' + context 'when context is a course' do + it_behaves_like 'names and roles claim check' end context 'when context is an account' do @@ -330,13 +336,7 @@ describe Lti::Messages::JwtMessage do ) end - it 'sets the NRPS url' do - expect(message_names_and_roles_service['context_memberships_url']).to eq 'polymorphic_url' - end - - it 'sets the NRPS version' do - expect(message_names_and_roles_service['service_version']).to eq '2.0' - end + it_behaves_like 'names and roles claim check' end end end