Refactor LTI parameters and add study group
* This change also requires that submissions in our test need to have a valid study group.
This commit is contained in:

committed by
Sebastian Serth

parent
e2baa2ee55
commit
e3603758ef
@ -108,7 +108,7 @@ describe Lti do
|
||||
let(:submission) { create(:submission) }
|
||||
|
||||
before do
|
||||
create(:lti_parameter, consumers_id: consumer.id, external_users_id: submission.contributor_id, exercises_id: submission.exercise_id)
|
||||
create(:lti_parameter, external_user: submission.contributor, exercise: submission.exercise)
|
||||
end
|
||||
|
||||
context 'with an invalid score' do
|
||||
@ -173,15 +173,15 @@ describe Lti do
|
||||
controller.instance_variable_set(:@current_user, create(:external_user))
|
||||
controller.instance_variable_set(:@exercise, create(:fibonacci))
|
||||
expect(controller.session).to receive(:[]=).with(:external_user_id, anything)
|
||||
controller.send(:store_lti_session_data, consumer: build(:consumer), parameters:)
|
||||
controller.send(:store_lti_session_data, parameters)
|
||||
end
|
||||
|
||||
it 'creates an LtiParameter Object' do
|
||||
before_count = LtiParameter.count
|
||||
controller.instance_variable_set(:@current_user, create(:external_user))
|
||||
controller.instance_variable_set(:@exercise, create(:fibonacci))
|
||||
controller.send(:store_lti_session_data, consumer: build(:consumer), parameters:)
|
||||
expect(LtiParameter.count).to eq(before_count + 1)
|
||||
expect do
|
||||
controller.instance_variable_set(:@current_user, create(:external_user))
|
||||
controller.instance_variable_set(:@exercise, create(:fibonacci))
|
||||
controller.send(:store_lti_session_data, parameters)
|
||||
end.to change(LtiParameter, :count).by(1)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -101,7 +101,6 @@ describe SessionsController do
|
||||
end
|
||||
|
||||
it 'stores LTI parameters in the session' do
|
||||
# Todo replace session with lti_parameter /should be done already
|
||||
expect(controller).to receive(:store_lti_session_data)
|
||||
perform_request
|
||||
end
|
||||
@ -191,7 +190,6 @@ describe SessionsController do
|
||||
end
|
||||
|
||||
it 'clears the session' do
|
||||
# Todo replace session with lti_parameter /should be done already
|
||||
expect(controller).to receive(:clear_lti_session_data)
|
||||
delete :destroy
|
||||
end
|
||||
@ -207,15 +205,12 @@ describe SessionsController do
|
||||
let(:submission) { create(:submission, exercise: create(:dummy)) }
|
||||
|
||||
before do
|
||||
# Todo replace session with lti_parameter
|
||||
# Todo create LtiParameter Object
|
||||
# session[:lti_parameters] = {}
|
||||
create(:lti_parameter, external_user: submission.contributor)
|
||||
allow(controller).to receive(:current_user).and_return(submission.contributor)
|
||||
perform_request.call
|
||||
end
|
||||
|
||||
it 'clears the session' do
|
||||
# Todo replace session with lti_parameter /should be done already
|
||||
expect(controller).to receive(:clear_lti_session_data)
|
||||
perform_request.call
|
||||
end
|
||||
|
@ -8,12 +8,18 @@ FactoryBot.define do
|
||||
}.freeze
|
||||
|
||||
factory :lti_parameter do
|
||||
consumer
|
||||
exercise factory: :math
|
||||
external_user
|
||||
|
||||
lti_parameters { lti_params }
|
||||
|
||||
after(:create) do |lti_parameter|
|
||||
# Do not change anything if a study group was provided explicitly or user has no study groups
|
||||
next if lti_parameter.study_group.present? || lti_parameter.external_user.study_groups.blank?
|
||||
|
||||
lti_parameter.update!(study_group: lti_parameter.external_user.study_groups.first)
|
||||
end
|
||||
|
||||
trait :without_outcome_service_url do
|
||||
lti_parameters { lti_params.except(:lis_outcome_service_url) }
|
||||
end
|
||||
|
Reference in New Issue
Block a user