From 8c803107cd3f13f592a775a4fccd1eded2f9c4a4 Mon Sep 17 00:00:00 2001 From: Diego Araújo Date: Tue, 27 Jan 2015 15:52:30 -0200 Subject: [PATCH] WIP: Fixing reading acceptance tests --- features/step_definitions/configuration_steps.rb | 10 +++++----- features/step_definitions/repository_steps.rb | 4 ++-- spec/controllers/base_metric_configurations_controller_spec.rb | 2 +- spec/controllers/compound_metric_configurations_controller_spec.rb | 2 +- spec/controllers/concerns/ownership_authentication_spec.rb | 2 +- spec/controllers/kalibro_configurations_controller_spec.rb | 270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ spec/controllers/metric_configurations_controller_spec.rb | 3 +-- spec/controllers/mezuro_configurations_controller_spec.rb | 270 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ spec/controllers/mezuro_ranges_controller_spec.rb | 4 ++-- spec/controllers/repositories_controller_spec.rb | 6 +++--- spec/factories/kalibro_configurations.rb | 23 +++++++++++++++++++++++ spec/factories/mezuro_configurations.rb | 13 ------------- spec/helpers/mezuro_configurations_helper_spec.rb | 2 +- 13 files changed, 310 insertions(+), 301 deletions(-) create mode 100644 spec/controllers/kalibro_configurations_controller_spec.rb delete mode 100644 spec/controllers/mezuro_configurations_controller_spec.rb create mode 100644 spec/factories/kalibro_configurations.rb delete mode 100644 spec/factories/mezuro_configurations.rb diff --git a/features/step_definitions/configuration_steps.rb b/features/step_definitions/configuration_steps.rb index 6b62a06..373d5ee 100644 --- a/features/step_definitions/configuration_steps.rb +++ b/features/step_definitions/configuration_steps.rb @@ -7,15 +7,15 @@ Given(/^I am at the New Configuration page$/) do end Given(/^I have a configuration named "(.*?)"$/) do |name| - @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, {id: nil, name: name}) + @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, {name: name}) end Given(/^I have a sample configuration$/) do - @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, {id: nil}) + @kalibro_configuration = FactoryGirl.create(:kalibro_configuration) end Given(/^I own a sample configuration$/) do - @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, {id: nil}) + @kalibro_configuration = FactoryGirl.create(:kalibro_configuration) FactoryGirl.create(:kalibro_configuration_ownership, {id: nil, user_id: @user.id, kalibro_configuration_id: @kalibro_configuration.id}) end @@ -28,7 +28,7 @@ Given(/^I am at the sample configuration edit page$/) do end Given(/^I own a configuration named "(.*?)"$/) do |name| - @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, {id: nil, name: name}) + @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, {name: name}) FactoryGirl.create(:kalibro_configuration_ownership, {id: nil, user_id: @user.id, kalibro_configuration_id: @kalibro_configuration.id}) end @@ -49,7 +49,7 @@ Then(/^I should be in the All configurations page$/) do end Then(/^the sample configuration should not be there$/) do - expect { KalibroConfiguration.find(@kalibro_configuration.id) }.to raise_error + expect { KalibroConfiguration.find(@kalibro_configuration.id) }.to raise_error end Then(/^the sample configuration should be there$/) do diff --git a/features/step_definitions/repository_steps.rb b/features/step_definitions/repository_steps.rb index 385cc6e..47e7aff 100644 --- a/features/step_definitions/repository_steps.rb +++ b/features/step_definitions/repository_steps.rb @@ -1,7 +1,7 @@ Given(/^I have a sample configuration with native metrics but without ranges$/) do reading_group = FactoryGirl.create(:reading_group) reading = FactoryGirl.create(:reading, {reading_group_id: reading_group.id}) - @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, id: nil) + @kalibro_configuration = FactoryGirl.create(:kalibro_configuration) metric_configuration = FactoryGirl.create(:metric_configuration, {metric: FactoryGirl.build(:loc), reading_group_id: reading_group.id, @@ -16,7 +16,7 @@ Given(/^I have a sample configuration with native metrics$/) do KalibroClient::Processor::MetricCollector.find('Analizo').supported_metrics.select { |x| not x.persisted? }.save - @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, id: nil) + @kalibro_configuration = FactoryGirl.create(:kalibro_configuration) metric_configuration = FactoryGirl.create(:metric_configuration, {metric: FactoryGirl.build(:loc), reading_group_id: reading_group.id, diff --git a/spec/controllers/base_metric_configurations_controller_spec.rb b/spec/controllers/base_metric_configurations_controller_spec.rb index 16894bd..3ddf1cc 100644 --- a/spec/controllers/base_metric_configurations_controller_spec.rb +++ b/spec/controllers/base_metric_configurations_controller_spec.rb @@ -41,7 +41,7 @@ end describe InheritsFromBaseMetricConfigurationsController, :type => :controller do - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } + let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration_with_id) } before do Rails.application.routes.draw do diff --git a/spec/controllers/compound_metric_configurations_controller_spec.rb b/spec/controllers/compound_metric_configurations_controller_spec.rb index 2000470..ad1b84d 100644 --- a/spec/controllers/compound_metric_configurations_controller_spec.rb +++ b/spec/controllers/compound_metric_configurations_controller_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe CompoundMetricConfigurationsController, :type => :controller do - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } + let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration_with_id) } describe 'new' do before :each do diff --git a/spec/controllers/concerns/ownership_authentication_spec.rb b/spec/controllers/concerns/ownership_authentication_spec.rb index d33848f..1c0d23a 100644 --- a/spec/controllers/concerns/ownership_authentication_spec.rb +++ b/spec/controllers/concerns/ownership_authentication_spec.rb @@ -65,7 +65,7 @@ describe OwnershipAuthentication, type: :controller do end describe 'kalibro_configuration_owner?' do - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } + let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration_with_id) } context 'Not KalibroConfigurationsController nor MetricConfigurationsController nor CompoundMetricConfigurationsController' do let!(:projects_controller) { ProjectsController.new } diff --git a/spec/controllers/kalibro_configurations_controller_spec.rb b/spec/controllers/kalibro_configurations_controller_spec.rb new file mode 100644 index 0000000..12bfeb0 --- /dev/null +++ b/spec/controllers/kalibro_configurations_controller_spec.rb @@ -0,0 +1,270 @@ +require 'rails_helper' + +describe KalibroConfigurationsController, :type => :controller do + + describe 'new' do + before :each do + sign_in FactoryGirl.create(:user) + get :new + end + + it { is_expected.to respond_with(:success) } + it { is_expected.to render_template(:new) } + end + + describe 'create' do + before do + sign_in FactoryGirl.create(:user) + end + + context 'with valid fields' do + let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration_with_id) } + let(:subject_params) { kalibro_configuration.to_hash } + + before :each do + KalibroConfiguration.any_instance.expects(:save).returns(true) + end + + context 'rendering the show' do + before :each do + post :create, :kalibro_configuration => subject_params + end + + it 'should redirect to the show view' do + expect(response).to redirect_to kalibro_configuration_path(kalibro_configuration.id) + end + end + + context 'without rendering the show view' do + before :each do + post :create, :kalibro_configuration => subject_params + end + + it { is_expected.to respond_with(:redirect) } + end + end + + context 'with an invalid field' do + before :each do + @subject = FactoryGirl.build(:kalibro_configuration_with_id) + @subject_params = @subject.to_hash + + KalibroConfiguration.expects(:new).at_least_once.with(@subject_params).returns(@subject) + KalibroConfiguration.any_instance.expects(:save).returns(false) + + post :create, :kalibro_configuration => @subject_params + end + + it { is_expected.to render_template(:new) } + end + end + + describe 'show' do + let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration_with_id) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } + + before :each do + kalibro_configuration.expects(:metric_configurations).returns(metric_configuration) + subject.expects(:find_resource).with(KalibroConfiguration, kalibro_configuration.id).returns(kalibro_configuration) + + get :show, :id => kalibro_configuration.id + end + + it { is_expected.to render_template(:show) } + + after :each do + Rails.cache.clear + end + end + + describe 'destroy' do + before do + @subject = FactoryGirl.build(:kalibro_configuration_with_id) + end + + context 'with an User logged in' do + before do + sign_in FactoryGirl.create(:user) + @ownership = FactoryGirl.build(:kalibro_configuration_ownership) + @ownerships = [] + end + + context 'when the user owns the kalibro_configuration' do + before :each do + @ownership.expects(:destroy) + @subject.expects(:destroy) + + #Those two mocks looks the same but they are necessary since params[:id] is a String and @configuration.id is an Integer :( + @ownerships.expects(:find_by_kalibro_configuration_id).with("#{@subject.id}").returns(@ownership) + @ownerships.expects(:find_by_kalibro_configuration_id).with(@subject.id).returns(@ownership) + + User.any_instance.expects(:kalibro_configuration_ownerships).at_least_once.returns(@ownerships) + + subject.expects(:find_resource).with(KalibroConfiguration, @subject.id).returns(@subject) + delete :destroy, :id => @subject.id + end + + it 'should redirect to the kalibro_configurations page' do + expect(response).to redirect_to kalibro_configurations_url + end + + it { is_expected.to respond_with(:redirect) } + end + + context "when the user doesn't own the kalibro_configuration" do + before :each do + @ownerships.expects(:find_by_kalibro_configuration_id).with("#{@subject.id}").returns(nil) + User.any_instance.expects(:kalibro_configuration_ownerships).at_least_once.returns(@ownerships) + + delete :destroy, :id => @subject.id + end + + it { is_expected.to redirect_to(kalibro_configurations_path(@subject.id)) } + end + end + + context 'with no User logged in' do + before :each do + delete :destroy, :id => @subject.id + end + + it { is_expected.to redirect_to new_user_session_path } + end + end + + describe 'index' do + before :each do + @subject = FactoryGirl.build(:kalibro_configuration_with_id) + KalibroConfiguration.expects(:all).returns([@subject]) + get :index + end + + it { is_expected.to render_template(:index) } + end + + describe 'edit' do + before do + @subject = FactoryGirl.build(:kalibro_configuration_with_id) + end + + context 'with an User logged in' do + before do + @user = FactoryGirl.create(:user) + @ownership = FactoryGirl.build(:kalibro_configuration_ownership) + @ownerships = [] + + User.any_instance.expects(:kalibro_configuration_ownerships).at_least_once.returns(@ownerships) + + sign_in @user + end + + context 'when the user owns the kalibro_configuration' do + before :each do + subject.expects(:find_resource).with(KalibroConfiguration, @subject.id).returns(@subject) + @ownerships.expects(:find_by_kalibro_configuration_id).with("#{@subject.id}").returns(@ownership) + + get :edit, :id => @subject.id + end + + it { is_expected.to render_template(:edit) } + + it 'should assign to @kalibro_configuration the @subject' do + expect(assigns(:kalibro_configuration)).to eq(@subject) + end + end + + context 'when the user does not own the kalibro_configuration' do + before do + @subject = FactoryGirl.build(:another_kalibro_configuration_with_id) + @ownerships.expects(:find_by_kalibro_configuration_id).with("#{@subject.id}").returns(nil) + + get :edit, :id => @subject.id + end + + it { is_expected.to redirect_to(kalibro_configurations_path(@subject.id)) } + it { is_expected.to set_the_flash[:notice].to("You're not allowed to do this operation") } + end + end + + context 'with no user logged in' do + before :each do + get :edit, :id => @subject.id + end + + it { is_expected.to redirect_to new_user_session_path } + end + end + + describe 'update' do + let(:kalibro_configuration) {FactoryGirl.build(:kalibro_configuration_with_id)} + let(:kalibro_configuration_params) { kalibro_configuration.to_hash } + + context 'when the user is logged in' do + before do + sign_in FactoryGirl.create(:user) + end + + context 'when user owns the kalibro_configuration' do + before do + @ownership = FactoryGirl.build(:kalibro_configuration_ownership) + @ownerships = [] + + @ownerships.expects(:find_by_kalibro_configuration_id).with("#{kalibro_configuration.id}").returns(@ownership) + User.any_instance.expects(:kalibro_configuration_ownerships).at_least_once.returns(@ownerships) + end + + context 'with valid fields' do + before :each do + subject.expects(:find_resource).with(KalibroConfiguration, kalibro_configuration.id).returns(kalibro_configuration) + KalibroConfiguration.any_instance.expects(:update).with(kalibro_configuration_params).returns(true) + end + + context 'rendering the show' do + before :each do + post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params + end + + it 'should redirect to the show view' do + expect(response).to redirect_to kalibro_configuration_path(kalibro_configuration.id) + end + end + + context 'without rendering the show view' do + before :each do + post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params + end + + it { is_expected.to respond_with(:redirect) } + end + end + + context 'with an invalid field' do + before :each do + subject.expects(:find_resource).with(KalibroConfiguration, kalibro_configuration.id).returns(kalibro_configuration) + KalibroConfiguration.any_instance.expects(:update).with(kalibro_configuration_params).returns(false) + + post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params + end + + it { is_expected.to render_template(:edit) } + end + end + + context 'when the user does not own the kalibro_configuration' do + before :each do + post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params + end + + it { is_expected.to redirect_to kalibro_configurations_path(kalibro_configuration.id) } + end + end + + context 'with no user logged in' do + before :each do + post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params + end + + it { is_expected.to redirect_to new_user_session_path } + end + end +end diff --git a/spec/controllers/metric_configurations_controller_spec.rb b/spec/controllers/metric_configurations_controller_spec.rb index ec8110a..14aa75c 100644 --- a/spec/controllers/metric_configurations_controller_spec.rb +++ b/spec/controllers/metric_configurations_controller_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe MetricConfigurationsController, :type => :controller do - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } + let!(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration_with_id) } describe 'choose_metric' do let(:metric_collector) { FactoryGirl.build(:metric_collector) } before :each do @@ -53,7 +53,6 @@ describe MetricConfigurationsController, :type => :controller do describe 'create' do let!(:metric_configuration) { FactoryGirl.build(:metric_configuration) } let(:metric_configuration_params) { metric_configuration.to_hash } - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } let(:metric_collector) { FactoryGirl.build(:metric_collector) } before do diff --git a/spec/controllers/mezuro_configurations_controller_spec.rb b/spec/controllers/mezuro_configurations_controller_spec.rb deleted file mode 100644 index 43835fd..0000000 --- a/spec/controllers/mezuro_configurations_controller_spec.rb +++ /dev/null @@ -1,270 +0,0 @@ -require 'rails_helper' - -describe KalibroConfigurationsController, :type => :controller do - - describe 'new' do - before :each do - sign_in FactoryGirl.create(:user) - get :new - end - - it { is_expected.to respond_with(:success) } - it { is_expected.to render_template(:new) } - end - - describe 'create' do - before do - sign_in FactoryGirl.create(:user) - end - - context 'with valid fields' do - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } - let(:subject_params) { Hash[FactoryGirl.attributes_for(:kalibro_configuration).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 - - before :each do - KalibroConfiguration.any_instance.expects(:save).returns(true) - end - - context 'rendering the show' do - before :each do - post :create, :kalibro_configuration => subject_params - end - - it 'should redirect to the show view' do - expect(response).to redirect_to kalibro_configuration_path(kalibro_configuration.id) - end - end - - context 'without rendering the show view' do - before :each do - post :create, :kalibro_configuration => subject_params - end - - it { is_expected.to respond_with(:redirect) } - end - end - - context 'with an invalid field' do - before :each do - @subject = FactoryGirl.build(:kalibro_configuration) - @subject_params = Hash[FactoryGirl.attributes_for(:kalibro_configuration).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 - - KalibroConfiguration.expects(:new).at_least_once.with(@subject_params).returns(@subject) - KalibroConfiguration.any_instance.expects(:save).returns(false) - - post :create, :kalibro_configuration => @subject_params - end - - it { is_expected.to render_template(:new) } - end - end - - describe 'show' do - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } - let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } - - before :each do - kalibro_configuration.expects(:metric_configurations).returns(metric_configuration) - subject.expects(:find_resource).with(KalibroConfiguration, kalibro_configuration.id).returns(kalibro_configuration) - - get :show, :id => kalibro_configuration.id - end - - it { is_expected.to render_template(:show) } - - after :each do - Rails.cache.clear - end - end - - describe 'destroy' do - before do - @subject = FactoryGirl.build(:kalibro_configuration) - end - - context 'with an User logged in' do - before do - sign_in FactoryGirl.create(:user) - @ownership = FactoryGirl.build(:kalibro_configuration_ownership) - @ownerships = [] - end - - context 'when the user owns the kalibro_configuration' do - before :each do - @ownership.expects(:destroy) - @subject.expects(:destroy) - - #Those two mocks looks the same but they are necessary since params[:id] is a String and @configuration.id is an Integer :( - @ownerships.expects(:find_by_kalibro_configuration_id).with("#{@subject.id}").returns(@ownership) - @ownerships.expects(:find_by_kalibro_configuration_id).with(@subject.id).returns(@ownership) - - User.any_instance.expects(:kalibro_configuration_ownerships).at_least_once.returns(@ownerships) - - subject.expects(:find_resource).with(KalibroConfiguration, @subject.id).returns(@subject) - delete :destroy, :id => @subject.id - end - - it 'should redirect to the kalibro_configurations page' do - expect(response).to redirect_to kalibro_configurations_url - end - - it { is_expected.to respond_with(:redirect) } - end - - context "when the user doesn't own the kalibro_configuration" do - before :each do - @ownerships.expects(:find_by_kalibro_configuration_id).with("#{@subject.id}").returns(nil) - User.any_instance.expects(:kalibro_configuration_ownerships).at_least_once.returns(@ownerships) - - delete :destroy, :id => @subject.id - end - - it { is_expected.to redirect_to(kalibro_configurations_path(@subject.id)) } - end - end - - context 'with no User logged in' do - before :each do - delete :destroy, :id => @subject.id - end - - it { is_expected.to redirect_to new_user_session_path } - end - end - - describe 'index' do - before :each do - @subject = FactoryGirl.build(:kalibro_configuration) - KalibroConfiguration.expects(:all).returns([@subject]) - get :index - end - - it { is_expected.to render_template(:index) } - end - - describe 'edit' do - before do - @subject = FactoryGirl.build(:kalibro_configuration) - end - - context 'with an User logged in' do - before do - @user = FactoryGirl.create(:user) - @ownership = FactoryGirl.build(:kalibro_configuration_ownership) - @ownerships = [] - - User.any_instance.expects(:kalibro_configuration_ownerships).at_least_once.returns(@ownerships) - - sign_in @user - end - - context 'when the user owns the kalibro_configuration' do - before :each do - subject.expects(:find_resource).with(KalibroConfiguration, @subject.id).returns(@subject) - @ownerships.expects(:find_by_kalibro_configuration_id).with("#{@subject.id}").returns(@ownership) - - get :edit, :id => @subject.id - end - - it { is_expected.to render_template(:edit) } - - it 'should assign to @kalibro_configuration the @subject' do - expect(assigns(:kalibro_configuration)).to eq(@subject) - end - end - - context 'when the user does not own the kalibro_configuration' do - before do - @subject = FactoryGirl.build(:another_kalibro_configuration) - @ownerships.expects(:find_by_kalibro_configuration_id).with("#{@subject.id}").returns(nil) - - get :edit, :id => @subject.id - end - - it { is_expected.to redirect_to(kalibro_configurations_path(@subject.id)) } - it { is_expected.to set_the_flash[:notice].to("You're not allowed to do this operation") } - end - end - - context 'with no user logged in' do - before :each do - get :edit, :id => @subject.id - end - - it { is_expected.to redirect_to new_user_session_path } - end - end - - describe 'update' do - let(:kalibro_configuration) {FactoryGirl.build(:kalibro_configuration)} - let(:kalibro_configuration_params) {Hash[FactoryGirl.attributes_for(:kalibro_configuration).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 - before do - sign_in FactoryGirl.create(:user) - end - - context 'when user owns the kalibro_configuration' do - before do - @ownership = FactoryGirl.build(:kalibro_configuration_ownership) - @ownerships = [] - - @ownerships.expects(:find_by_kalibro_configuration_id).with("#{kalibro_configuration.id}").returns(@ownership) - User.any_instance.expects(:kalibro_configuration_ownerships).at_least_once.returns(@ownerships) - end - - context 'with valid fields' do - before :each do - subject.expects(:find_resource).with(KalibroConfiguration, kalibro_configuration.id).returns(kalibro_configuration) - KalibroConfiguration.any_instance.expects(:update).with(kalibro_configuration_params).returns(true) - end - - context 'rendering the show' do - before :each do - post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params - end - - it 'should redirect to the show view' do - expect(response).to redirect_to kalibro_configuration_path(kalibro_configuration.id) - end - end - - context 'without rendering the show view' do - before :each do - post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params - end - - it { is_expected.to respond_with(:redirect) } - end - end - - context 'with an invalid field' do - before :each do - subject.expects(:find_resource).with(KalibroConfiguration, kalibro_configuration.id).returns(kalibro_configuration) - KalibroConfiguration.any_instance.expects(:update).with(kalibro_configuration_params).returns(false) - - post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params - end - - it { is_expected.to render_template(:edit) } - end - end - - context 'when the user does not own the kalibro_configuration' do - before :each do - post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params - end - - it { is_expected.to redirect_to kalibro_configurations_path(kalibro_configuration.id) } - end - end - - context 'with no user logged in' do - before :each do - post :update, :id => kalibro_configuration.id, :kalibro_configuration => kalibro_configuration_params - end - - it { is_expected.to redirect_to new_user_session_path } - end - end -end diff --git a/spec/controllers/mezuro_ranges_controller_spec.rb b/spec/controllers/mezuro_ranges_controller_spec.rb index 8ebe3c0..6f6af95 100644 --- a/spec/controllers/mezuro_ranges_controller_spec.rb +++ b/spec/controllers/mezuro_ranges_controller_spec.rb @@ -5,7 +5,7 @@ describe MezuroRangesController, :type => :controller do let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } describe 'new' do - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } + let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration_with_id) } before :each do sign_in FactoryGirl.create(:user) @@ -35,7 +35,7 @@ describe MezuroRangesController, :type => :controller do describe 'create' do let(:mezuro_range_params) { Hash[FactoryGirl.attributes_for(:mezuro_range).map { |k,v| [k.to_s, v.to_s] }] } #FIXME: Mocha is creating the expectations with strings, but FactoryGirl returns everything with symbols and integers - let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } + let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration_with_id) } before do sign_in FactoryGirl.create(:user) diff --git a/spec/controllers/repositories_controller_spec.rb b/spec/controllers/repositories_controller_spec.rb index 527e9f8..5dde72c 100644 --- a/spec/controllers/repositories_controller_spec.rb +++ b/spec/controllers/repositories_controller_spec.rb @@ -93,7 +93,7 @@ describe RepositoriesController, :type => :controller do before :each do processing = FactoryGirl.build(:processing) - KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration)) + KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration_with_id)) subject.expects(:find_resource).with(Repository, repository.id).returns(repository) get :show, id: repository.id.to_s, project_id: project.id.to_s @@ -107,7 +107,7 @@ describe RepositoriesController, :type => :controller do before :each do processing = FactoryGirl.build(:processing) - KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration)) + KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration_with_id)) subject.expects(:find_resource).with(Repository, repository.id).returns(repository) get :show, id: repository.id.to_s, project_id: project.id.to_s @@ -331,7 +331,7 @@ describe RepositoriesController, :type => :controller do subject.expects(:repository_owner?).returns true repository.expects(:process) Repository.expects(:find).at_least_once.with(repository.id).returns(repository) - KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration)) + KalibroConfiguration.expects(:find).with(repository.id).returns(FactoryGirl.build(:kalibro_configuration_with_id)) get :process_repository, project_id: project.id.to_s, id: repository.id end it { is_expected.to redirect_to(project_repository_path(repository.project_id, repository.id)) } diff --git a/spec/factories/kalibro_configurations.rb b/spec/factories/kalibro_configurations.rb new file mode 100644 index 0000000..4a1ac04 --- /dev/null +++ b/spec/factories/kalibro_configurations.rb @@ -0,0 +1,23 @@ + FactoryGirl.define do + factory :kalibro_configuration, class: KalibroConfiguration do + name "Java" + description "Code metrics for Java." + + trait :with_id do + id 1 + end + + factory :kalibro_configuration_with_id, traits: [:with_id] + end + + factory :another_kalibro_configuration, class: KalibroConfiguration do + name "Perl" + description "Code metrics for Perl." + + trait :with_id do + id 12 + end + + factory :another_kalibro_configuration_with_id, traits: [:with_id] + end +end diff --git a/spec/factories/mezuro_configurations.rb b/spec/factories/mezuro_configurations.rb deleted file mode 100644 index 4113cc0..0000000 --- a/spec/factories/mezuro_configurations.rb +++ /dev/null @@ -1,13 +0,0 @@ - FactoryGirl.define do - factory :kalibro_configuration, class: KalibroConfiguration do - id 1 - name "Java" - description "Code metrics for Java." - end - - factory :another_kalibro_configuration, class: KalibroConfiguration do - id 12 - name "Perl" - description "Code metrics for Perl." - end -end diff --git a/spec/helpers/mezuro_configurations_helper_spec.rb b/spec/helpers/mezuro_configurations_helper_spec.rb index 966c03d..0584715 100644 --- a/spec/helpers/mezuro_configurations_helper_spec.rb +++ b/spec/helpers/mezuro_configurations_helper_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe KalibroConfigurationsHelper, :type => :helper do describe 'kalibro_configuration_owner?' do before :each do - @subject = FactoryGirl.build(:kalibro_configuration) + @subject = FactoryGirl.build(:kalibro_configuration_with_id) end context 'returns false if not logged in' do -- libgit2 0.21.2