added tests
This commit is contained in:
@ -107,6 +107,7 @@ describe Lti do
|
|||||||
let(:consumer) { FactoryGirl.create(:consumer) }
|
let(:consumer) { FactoryGirl.create(:consumer) }
|
||||||
let(:score) { 0.5 }
|
let(:score) { 0.5 }
|
||||||
|
|
||||||
|
context 'with a tool provider' do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
controller.session[:consumer_id] = consumer.id
|
controller.session[:consumer_id] = consumer.id
|
||||||
controller.session[:lti_parameters] = {}
|
controller.session[:lti_parameters] = {}
|
||||||
@ -144,6 +145,14 @@ describe Lti do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'without a tool provider' do
|
||||||
|
it 'returns a corresponding status' do
|
||||||
|
expect(controller).to receive(:build_tool_provider).and_return(nil)
|
||||||
|
expect(controller.send(:send_score, score)[:status]).to eq('error')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#store_lti_session_data' do
|
describe '#store_lti_session_data' do
|
||||||
let(:parameters) { {} }
|
let(:parameters) { {} }
|
||||||
before(:each) { controller.instance_variable_set(:@current_user, FactoryGirl.create(:external_user)) }
|
before(:each) { controller.instance_variable_set(:@current_user, FactoryGirl.create(:external_user)) }
|
||||||
|
@ -1,9 +1,35 @@
|
|||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe CodeOcean::FilesController do
|
describe CodeOcean::FilesController do
|
||||||
let(:user) { FactoryGirl.build(:admin) }
|
let(:user) { FactoryGirl.create(:admin) }
|
||||||
before(:each) { allow(controller).to receive(:current_user).and_return(user) }
|
before(:each) { allow(controller).to receive(:current_user).and_return(user) }
|
||||||
|
|
||||||
|
describe 'POST #create' do
|
||||||
|
let(:submission) { FactoryGirl.create(:submission, user: user) }
|
||||||
|
|
||||||
|
context 'with a valid file' do
|
||||||
|
let(:request) { Proc.new { post :create, code_ocean_file: FactoryGirl.build(:file, context: submission).attributes, format: :json } }
|
||||||
|
before(:each) { request.call }
|
||||||
|
|
||||||
|
expect_assigns(file: CodeOcean::File)
|
||||||
|
|
||||||
|
it 'creates the file' do
|
||||||
|
expect { request.call }.to change(CodeOcean::File, :count)
|
||||||
|
end
|
||||||
|
|
||||||
|
expect_json
|
||||||
|
expect_status(201)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with an invalid file' do
|
||||||
|
before(:each) { post :create, code_ocean_file: {context_id: submission.id, context_type: Submission}, format: :json }
|
||||||
|
|
||||||
|
expect_assigns(file: CodeOcean::File)
|
||||||
|
expect_json
|
||||||
|
expect_status(422)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'DELETE #destroy' do
|
describe 'DELETE #destroy' do
|
||||||
let(:exercise) { FactoryGirl.create(:fibonacci) }
|
let(:exercise) { FactoryGirl.create(:fibonacci) }
|
||||||
let(:request) { Proc.new { delete :destroy, id: exercise.files.first.id } }
|
let(:request) { Proc.new { delete :destroy, id: exercise.files.first.id } }
|
||||||
|
15
spec/helpers/exercise_helper_spec.rb
Normal file
15
spec/helpers/exercise_helper_spec.rb
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe ExerciseHelper do
|
||||||
|
describe '#embedding_parameters' do
|
||||||
|
let(:exercise) { FactoryGirl.build(:dummy) }
|
||||||
|
|
||||||
|
it 'contains the locale' do
|
||||||
|
expect(embedding_parameters(exercise)).to start_with("locale=#{I18n.locale}")
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'contains the token' do
|
||||||
|
expect(embedding_parameters(exercise)).to end_with("token=#{exercise.token}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Reference in New Issue
Block a user