From 6bf73757ae624d10f5d48e3c017e0a8a8c764852 Mon Sep 17 00:00:00 2001 From: Tom Staubitz Date: Fri, 13 Jan 2017 09:56:36 +0100 Subject: [PATCH] fixing tests p3 --- app/controllers/exercises_controller.rb | 7 +++++-- spec/controllers/exercises_controller_spec.rb | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 4e27d013..6eb74602 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -158,9 +158,11 @@ class ExercisesController < ApplicationController def redirect_to_lti_return_path lti_parameter = LtiParameter.where(consumers_id: session[:consumer_id], - external_users_id: @current_user.id, + external_users_id: @submission.user_id, exercises_id: @submission.exercise_id).first + # binding.pry + path = lti_return_path(consumer_id: session[:consumer_id], submission_id: @submission.id, url: consumer_return_url(build_tool_provider(consumer: Consumer.find_by(id: session[:consumer_id]), @@ -228,7 +230,8 @@ class ExercisesController < ApplicationController def submit @submission = Submission.create(submission_params) score_submission(@submission) - if lti_outcome_service?(@submission.exercise_id, @current_user.id, @current_user.consumer_id) + current_user = ExternalUser.find(@submission.user_id) + if !current_user.nil? && lti_outcome_service?(@submission.exercise_id, current_user.id, current_user.consumer_id) transmit_lti_score else redirect_after_submit diff --git a/spec/controllers/exercises_controller_spec.rb b/spec/controllers/exercises_controller_spec.rb index 5323096d..278f9967 100644 --- a/spec/controllers/exercises_controller_spec.rb +++ b/spec/controllers/exercises_controller_spec.rb @@ -230,11 +230,14 @@ describe ExercisesController do describe 'POST #submit' do let(:output) { {} } let(:request) { post :submit, format: :json, id: exercise.id, submission: {cause: 'submit', exercise_id: exercise.id} } + let!(:external_user) { FactoryGirl.create(:external_user) } + let!(:lti_parameter) { FactoryGirl.create(:lti_parameter) } before(:each) do allow_any_instance_of(Submission).to receive(:normalized_score).and_return(1) expect(controller).to receive(:collect_test_results).and_return([{score: 1, weight: 1}]) expect(controller).to receive(:score_submission).and_call_original + controller.session[:consumer_id] = external_user.consumer_id end context 'when LTI outcomes are supported' do