From b312147c2f4acc2dc3ecae9c14462df40401f3f0 Mon Sep 17 00:00:00 2001 From: Daniel Alves Date: Tue, 27 Jan 2015 14:48:48 -0200 Subject: [PATCH] [WIP] Fixing metric configuration acceptance tests --- features/step_definitions/metric_configuration_steps.rb | 10 +++++----- features/step_definitions/repository_steps.rb | 10 ++++------ spec/controllers/base_metric_configurations_controller_spec.rb | 10 +++++----- spec/controllers/compound_metric_configurations_controller_spec.rb | 12 ++++++------ spec/controllers/concerns/metric_configurations_concern_spec.rb | 2 +- spec/controllers/metric_configurations_controller_spec.rb | 14 +++++++------- spec/controllers/mezuro_configurations_controller_spec.rb | 2 +- spec/controllers/mezuro_ranges_controller_spec.rb | 6 +++--- spec/factories/metric_configurations.rb | 16 +++++++++++++--- spec/factories/metric_results.rb | 2 +- spec/helpers/metric_configurations_helper_spec.rb | 2 +- spec/helpers/mezuro_configurations_helper_spec.rb | 8 ++++---- spec/helpers/processings_helper_spec.rb | 2 +- spec/models/module_result_spec.rb | 4 ++-- 14 files changed, 54 insertions(+), 46 deletions(-) diff --git a/features/step_definitions/metric_configuration_steps.rb b/features/step_definitions/metric_configuration_steps.rb index 7f3106b..086ae3d 100644 --- a/features/step_definitions/metric_configuration_steps.rb +++ b/features/step_definitions/metric_configuration_steps.rb @@ -1,19 +1,19 @@ Given(/^I have a sample metric configuration within the given mezuro configuration$/) do @metric_configuration = FactoryGirl.create(:metric_configuration, - {id: nil, configuration_id: @kalibro_configuration.id, reading_group_id: @reading_group.id} ) + {kalibro_configuration_id: @kalibro_configuration.id, reading_group_id: @reading_group.id} ) end Given(/^I have another metric configuration with code "(.*?)" within the given mezuro configuration$/) do |code| @another_metric_configuration = FactoryGirl.create(:metric_configuration, - {id: nil, configuration_id: @kalibro_configuration.id, reading_group_id: @reading_group.id, code: code} ) + {kalibro_configuration_id: @kalibro_configuration.id, reading_group_id: @reading_group.id, code: code} ) end When(/^I visit the sample metric configuration edit page$/) do - visit edit_kalibro_configuration_metric_configuration_path(@metric_configuration.configuration_id, @metric_configuration.id) + visit edit_kalibro_configuration_metric_configuration_path(@metric_configuration.kalibro_configuration_id, @metric_configuration.id) end When(/^I visit the sample metric configuration page$/) do - visit kalibro_configuration_metric_configuration_path(@metric_configuration.configuration_id, @metric_configuration.id) + visit kalibro_configuration_metric_configuration_path(@metric_configuration.kalibro_configuration_id, @metric_configuration.id) end When(/^I visit the sample metric configuration page$/) do @@ -21,7 +21,7 @@ When(/^I visit the sample metric configuration page$/) do end Then(/^I am at the sample metric configuration page$/) do - visit kalibro_configuration_metric_configuration_path(@metric_configuration.configuration_id, @metric_configuration.id) + visit kalibro_configuration_metric_configuration_path(@metric_configuration.kalibro_configuration_id, @metric_configuration.id) expect(page).to have_content(@metric_configuration.metric.name) expect(page).to have_content("Ranges") end diff --git a/features/step_definitions/repository_steps.rb b/features/step_definitions/repository_steps.rb index 2babf64..41fcb68 100644 --- a/features/step_definitions/repository_steps.rb +++ b/features/step_definitions/repository_steps.rb @@ -3,8 +3,7 @@ Given(/^I have a sample configuration with native metrics but without ranges$/) reading = FactoryGirl.create(:reading, {id: nil, group_id: reading_group.id}) @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, id: nil) metric_configuration = FactoryGirl.create(:metric_configuration, - {id: nil, - metric: FactoryGirl.build(:loc), + {metric: FactoryGirl.build(:loc), reading_group_id: reading_group.id, configuration_id: @kalibro_configuration.id, code: 'loc'}) @@ -15,12 +14,11 @@ Given(/^I have a sample configuration with native metrics$/) do reading = FactoryGirl.create(:reading, {id: nil, reading_group_id: reading_group.id}) KalibroClient::Processor::MetricCollector.find('Analizo').supported_metrics.select { |x| not x.persisted? }.save - + @kalibro_configuration = FactoryGirl.create(:kalibro_configuration, id: nil) - metric_configuration = FactoryGirl.create(:metric_configuration_with_snapshot, - {id: nil, - metric: FactoryGirl.build(:loc), + metric_configuration = FactoryGirl.create(:metric_configuration, + {metric: FactoryGirl.build(:loc), reading_group_id: reading_group.id, kalibro_configuration_id: @kalibro_configuration.id, code: 'loc'}) diff --git a/spec/controllers/base_metric_configurations_controller_spec.rb b/spec/controllers/base_metric_configurations_controller_spec.rb index 8133a43..f1a1156 100644 --- a/spec/controllers/base_metric_configurations_controller_spec.rb +++ b/spec/controllers/base_metric_configurations_controller_spec.rb @@ -64,8 +64,8 @@ describe InheritsFromBaseMetricConfigurationsController, :type => :controller do sign_in FactoryGirl.create(:user) end - context 'when the current user owns the mezuro configuration' do - let!(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + context 'when the current user owns the kalibro configuration' do + let!(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } before :each do subject.expects(:kalibro_configuration_owner?).returns true get :new, kalibro_configuration_id: kalibro_configuration.id @@ -75,7 +75,7 @@ describe InheritsFromBaseMetricConfigurationsController, :type => :controller do it { is_expected.to respond_with(:success) } end - context "when the current user doesn't owns the mezuro configuration" do + context "when the current user doesn't owns the kalibro configuration" do before :each do get :new, kalibro_configuration_id: kalibro_configuration.id end @@ -93,7 +93,7 @@ describe InheritsFromBaseMetricConfigurationsController, :type => :controller do sign_in FactoryGirl.create(:user) end - context 'when the current user owns the mezuro configuration' do + context 'when the current user owns the kalibro configuration' do before :each do subject.expects(:kalibro_configuration_owner?).returns true end @@ -110,7 +110,7 @@ describe InheritsFromBaseMetricConfigurationsController, :type => :controller do end describe 'show' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } let(:reading_group) { FactoryGirl.build(:reading_group) } let(:mezuro_range) { FactoryGirl.build(:mezuro_range) } diff --git a/spec/controllers/compound_metric_configurations_controller_spec.rb b/spec/controllers/compound_metric_configurations_controller_spec.rb index 4fe3b3b..743a429 100644 --- a/spec/controllers/compound_metric_configurations_controller_spec.rb +++ b/spec/controllers/compound_metric_configurations_controller_spec.rb @@ -8,7 +8,7 @@ describe CompoundMetricConfigurationsController, :type => :controller do sign_in FactoryGirl.create(:user) end - context 'when the current user owns the mezuro configuration' do + context 'when the current user owns the kalibro configuration' do let!(:metric_configuration) { FactoryGirl.build(:metric_configuration) } before :each do subject.expects(:kalibro_configuration_owner?).returns true @@ -20,7 +20,7 @@ describe CompoundMetricConfigurationsController, :type => :controller do it { is_expected.to render_template(:new) } end - context "when the current user doesn't owns the mezuro configuration" do + context "when the current user doesn't owns the kalibro configuration" do before :each do get :new, kalibro_configuration_id: kalibro_configuration.id end @@ -70,7 +70,7 @@ describe CompoundMetricConfigurationsController, :type => :controller do end describe 'show' do - let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration) } + let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration_with_id) } let(:reading_group) { FactoryGirl.build(:reading_group) } let(:mezuro_range) { FactoryGirl.build(:mezuro_range) } @@ -86,7 +86,7 @@ describe CompoundMetricConfigurationsController, :type => :controller do end describe 'edit' do - let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration) } + let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration_with_id) } context 'with an User logged in' do before do @@ -125,8 +125,8 @@ describe CompoundMetricConfigurationsController, :type => :controller do end describe 'update' do - let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration) } - let(:metric_configuration_params) { Hash[FactoryGirl.attributes_for(:compound_metric_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 + let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration_with_id) } + let(:metric_configuration_params) { Hash[FactoryGirl.attributes_for(:compound_metric_configuration_with_id).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 diff --git a/spec/controllers/concerns/metric_configurations_concern_spec.rb b/spec/controllers/concerns/metric_configurations_concern_spec.rb index 978b524..d2aec6b 100644 --- a/spec/controllers/concerns/metric_configurations_concern_spec.rb +++ b/spec/controllers/concerns/metric_configurations_concern_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe MetricConfigurationsConcern, type: :controller do describe 'set_metric_configuration' do - let! (:metric_configuration){ FactoryGirl.build(:metric_configuration) } + let! (:metric_configuration){ FactoryGirl.build(:metric_configuration_with_id) } let! (:metric_configurations_controller) { MetricConfigurationsController.new } before :each do diff --git a/spec/controllers/metric_configurations_controller_spec.rb b/spec/controllers/metric_configurations_controller_spec.rb index 306065a..49934e1 100644 --- a/spec/controllers/metric_configurations_controller_spec.rb +++ b/spec/controllers/metric_configurations_controller_spec.rb @@ -28,7 +28,7 @@ describe MetricConfigurationsController, :type => :controller do sign_in FactoryGirl.create(:user) end - context 'when the current user owns the mezuro configuration' do + context 'when the current user owns the kalibro configuration' do before :each do subject.expects(:kalibro_configuration_owner?).returns true KalibroClient::Entities::Processor::MetricCollectorDetails.expects(:find).with(metric_collector.name).returns(metric_collector) @@ -40,7 +40,7 @@ describe MetricConfigurationsController, :type => :controller do it { is_expected.to render_template(:new) } end - context "when the current user doesn't owns the mezuro configuration" do + context "when the current user doesn't owns the kalibro configuration" do before :each do post :new, kalibro_configuration_id: kalibro_configuration.id, metric_name: "Lines of Code", metric_collector_name: metric_collector.name end @@ -92,7 +92,7 @@ describe MetricConfigurationsController, :type => :controller do end describe 'show' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } let(:reading_group) { FactoryGirl.build(:reading_group) } let(:mezuro_range) { FactoryGirl.build(:mezuro_range) } @@ -108,7 +108,7 @@ describe MetricConfigurationsController, :type => :controller do end describe 'edit' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } context 'with an User logged in' do before do @@ -146,8 +146,8 @@ describe MetricConfigurationsController, :type => :controller do end describe 'update' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } - let(:metric_configuration_params) { Hash[FactoryGirl.attributes_for(:metric_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 + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } + let(:metric_configuration_params) { metric_configuration.to_hash } context 'when the user is logged in' do before do @@ -195,7 +195,7 @@ describe MetricConfigurationsController, :type => :controller do describe 'destroy' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } context 'with an User logged in' do before do diff --git a/spec/controllers/mezuro_configurations_controller_spec.rb b/spec/controllers/mezuro_configurations_controller_spec.rb index 9f535fc..43835fd 100644 --- a/spec/controllers/mezuro_configurations_controller_spec.rb +++ b/spec/controllers/mezuro_configurations_controller_spec.rb @@ -61,7 +61,7 @@ describe KalibroConfigurationsController, :type => :controller do describe 'show' do let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } before :each do kalibro_configuration.expects(:metric_configurations).returns(metric_configuration) diff --git a/spec/controllers/mezuro_ranges_controller_spec.rb b/spec/controllers/mezuro_ranges_controller_spec.rb index 7de455c..c09987a 100644 --- a/spec/controllers/mezuro_ranges_controller_spec.rb +++ b/spec/controllers/mezuro_ranges_controller_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe MezuroRangesController, :type => :controller do let(:mezuro_range) { FactoryGirl.build(:mezuro_range, id: 1) } - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } describe 'new' do let(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration) } @@ -109,7 +109,7 @@ describe MezuroRangesController, :type => :controller do end describe 'edit' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } let(:mezuro_range) { FactoryGirl.build(:mezuro_range, id: 1, metric_configuration_id: metric_configuration.id) } let(:reading) { FactoryGirl.build(:reading, reading_group_id: metric_configuration.reading_group_id) } @@ -153,7 +153,7 @@ describe MezuroRangesController, :type => :controller do end describe 'update' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } let(:mezuro_range) { FactoryGirl.build(:mezuro_range, id: 1, metric_configuration_id: metric_configuration.id) } 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 sybols and integers let(:reading) { FactoryGirl.build(:reading, reading_group_id: metric_configuration.reading_group_id) } diff --git a/spec/factories/metric_configurations.rb b/spec/factories/metric_configurations.rb index bbce743..653dee2 100644 --- a/spec/factories/metric_configurations.rb +++ b/spec/factories/metric_configurations.rb @@ -1,23 +1,33 @@ FactoryGirl.define do factory :metric_configuration, class: MetricConfiguration do - id 1 metric {FactoryGirl.build(:metric, code: 'total_abstract_classes')} weight 1 aggregation_form "AVERAGE" reading_group_id 1 kalibro_configuration_id 1 + + trait :with_id do + id 1 + end + + factory :metric_configuration_with_id, traits: [:with_id] end factory :compound_metric_configuration, class: MetricConfiguration do - id 1 metric { FactoryGirl.build(:compound_metric, script: 'native*2;', code: 'compound') } weight 1 aggregation_form "AVERAGE" reading_group_id 1 kalibro_configuration_id 1 + + trait :with_id do + id 1 + end + + factory :compound_metric_configuration_with_id, traits: [:with_id] end - factory :another_metric_configuration, class: MetricConfiguration do + factory :another_metric_configuration_with_id, class: MetricConfiguration do id 1 metric {FactoryGirl.build(:metric, code: 'total_modules')} weight 1 diff --git a/spec/factories/metric_results.rb b/spec/factories/metric_results.rb index 4f14154..046995a 100644 --- a/spec/factories/metric_results.rb +++ b/spec/factories/metric_results.rb @@ -17,7 +17,7 @@ FactoryGirl.define do factory :metric_result, class: KalibroClient::Entities::Processor::MetricResult do id "42" - metric_configuration { FactoryGirl.build(:metric_configuration) } + metric_configuration { FactoryGirl.build(:metric_configuration_with_id) } value "10.0" aggregated_value "21" end diff --git a/spec/helpers/metric_configurations_helper_spec.rb b/spec/helpers/metric_configurations_helper_spec.rb index 4d85143..ed9662f 100644 --- a/spec/helpers/metric_configurations_helper_spec.rb +++ b/spec/helpers/metric_configurations_helper_spec.rb @@ -21,7 +21,7 @@ describe MetricConfigurationsHelper, :type => :helper do end describe 'native_metrics_of' do - let! (:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let! (:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } before :each do MetricConfiguration.expects(:metric_configurations_of).with(metric_configuration.kalibro_configuration_id).returns([metric_configuration]) diff --git a/spec/helpers/mezuro_configurations_helper_spec.rb b/spec/helpers/mezuro_configurations_helper_spec.rb index ea93678..966c03d 100644 --- a/spec/helpers/mezuro_configurations_helper_spec.rb +++ b/spec/helpers/mezuro_configurations_helper_spec.rb @@ -44,14 +44,14 @@ describe KalibroConfigurationsHelper, :type => :helper do describe 'link to edit form' do context 'when the metric is native' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } let(:response_link) {"Edit"} it { expect(helper.link_to_edit_form(metric_configuration, metric_configuration.kalibro_configuration_id)).to eq(response_link) } end context 'when the metric is compound' do - let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration) } + let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration_with_id) } let(:response_link) {"Edit"} it { expect(helper.link_to_edit_form(compound_metric_configuration, compound_metric_configuration.kalibro_configuration_id)).to eq(response_link) } @@ -60,14 +60,14 @@ describe KalibroConfigurationsHelper, :type => :helper do describe 'link to show page' do context 'when the metric is native' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id) } let(:response_link) {"Show"} it { expect(helper.link_to_show_page(metric_configuration, metric_configuration.kalibro_configuration_id)).to eq(response_link) } end context 'when the metric is compound' do - let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration) } + let(:compound_metric_configuration) { FactoryGirl.build(:compound_metric_configuration_with_id) } let(:response_link) {"Show"} it { expect(helper.link_to_show_page(compound_metric_configuration, compound_metric_configuration.kalibro_configuration_id)).to eq(response_link) } diff --git a/spec/helpers/processings_helper_spec.rb b/spec/helpers/processings_helper_spec.rb index fc607a4..ea3a82d 100644 --- a/spec/helpers/processings_helper_spec.rb +++ b/spec/helpers/processings_helper_spec.rb @@ -14,7 +14,7 @@ describe ProcessingsHelper, :type => :helper do end describe 'find_range_snapshot' do - let(:metric_configuration) { FactoryGirl.build(:metric_configuration)} + let(:metric_configuration) { FactoryGirl.build(:metric_configuration_with_id)} let(:metric_result) { FactoryGirl.build(:metric_result, {value: 6.0, metric_configuration: metric_configuration})} let(:range_snapshot_1_to_5) { FactoryGirl.build(:range_snapshot, {beginning: 1.0, end: 5.0}) } let(:range_snapshot_5dot1_to_10) { FactoryGirl.build(:range_snapshot, {beginning: 5.1, end: 10.0}) } diff --git a/spec/models/module_result_spec.rb b/spec/models/module_result_spec.rb index 42f0026..b3ff15a 100644 --- a/spec/models/module_result_spec.rb +++ b/spec/models/module_result_spec.rb @@ -3,10 +3,10 @@ require 'rails_helper' describe ModuleResult, :type => :model do describe 'methods' do subject { FactoryGirl.build(:module_result) } - + describe 'metric_history' do let(:date_module_result) {FactoryGirl.build(:date_module_result)} - let(:metric_configuration) { FactoryGirl.build(:another_metric_configuration) } + let(:metric_configuration) { FactoryGirl.build(:another_metric_configuration_with_id) } let!(:metric_result) { FactoryGirl.build(:metric_result, metric_configuration: metric_configuration) } let(:processing) {FactoryGirl.build(:processing)} let(:repository) {FactoryGirl.build(:repository)} -- libgit2 0.21.2