diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index acc42ad..0e4c75a 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -99,6 +99,9 @@ private def failed_action(format, destiny_action) @project_id = params[:project_id] @repository_types = Repository.repository_types + @configurations = KalibroConfiguration.public_or_owned_by_user(current_user).map { |conf| + [conf.name, conf.id] + } format.html { render action: destiny_action } format.json { render json: @repository.errors, status: :unprocessable_entity } diff --git a/features/step_definitions/repository_steps.rb b/features/step_definitions/repository_steps.rb index 2b86b57..bd28b51 100644 --- a/features/step_definitions/repository_steps.rb +++ b/features/step_definitions/repository_steps.rb @@ -13,6 +13,8 @@ Given(/^I have a sample configuration with native metrics$/) do reading = FactoryGirl.create(:reading, {reading_group_id: reading_group.id}) @kalibro_configuration = FactoryGirl.create(:kalibro_configuration) + FactoryGirl.create(:kalibro_configuration_attributes, {id: nil, user_id: nil, kalibro_configuration_id: @kalibro_configuration.id}) + metric_configuration = FactoryGirl.create(:metric_configuration, {metric: FactoryGirl.build(:loc), reading_group_id: reading_group.id, diff --git a/spec/controllers/repositories_controller_spec.rb b/spec/controllers/repositories_controller_spec.rb index 3377c41..7b2a0bb 100644 --- a/spec/controllers/repositories_controller_spec.rb +++ b/spec/controllers/repositories_controller_spec.rb @@ -44,11 +44,13 @@ describe RepositoriesController, :type => :controller do end describe 'create' do + let!(:kalibro_configurations) { [FactoryGirl.build(:kalibro_configuration)] } + let!(:user) { FactoryGirl.create(:user) } let (:repository) { FactoryGirl.build(:repository, project_id: project.id) } let(:repository_params) { FactoryGirl.build(:repository).to_hash } before do - sign_in FactoryGirl.create(:user) + sign_in user end context 'when the current user owns the project' do @@ -69,6 +71,7 @@ describe RepositoriesController, :type => :controller do context 'with an invalid field' do before :each do + KalibroConfiguration.expects(:public_or_owned_by_user).with(user).returns(kalibro_configurations) Repository.any_instance.expects(:save).returns(false) Repository.expects(:repository_types).returns([]) @@ -199,12 +202,15 @@ describe RepositoriesController, :type => :controller do end describe 'update' do + let(:kalibro_configurations) { [FactoryGirl.build(:kalibro_configuration)] } let(:repository) { FactoryGirl.build(:repository) } let(:repository_params) { Hash[FactoryGirl.attributes_for(:repository).map { |k,v| [k.to_s, v.to_s] }] } #FIXME: Mocha is creating the expectations with strings, but FactoryGirl returns everything with sybols and integers context 'when the user is logged in' do + let!(:user) { FactoryGirl.create(:user) } + before do - sign_in FactoryGirl.create(:user) + sign_in user end context 'when user owns the repository' do @@ -226,6 +232,7 @@ describe RepositoriesController, :type => :controller do context 'with an invalid field' do before :each do + KalibroConfiguration.expects(:public_or_owned_by_user).with(user).returns(kalibro_configurations) Repository.expects(:find).at_least_once.with(repository.id).returns(repository) Repository.any_instance.expects(:update).with(repository_params).returns(false) Repository.expects(:repository_types).returns([]) -- libgit2 0.21.2