From 46023e568af47f54b6bd7345ba4b7b29fc322217 Mon Sep 17 00:00:00 2001 From: Rafael Reggiani Manzo Date: Thu, 28 Aug 2014 09:54:25 -0300 Subject: [PATCH] Range overlapping does not consider the reange itself for the edition case --- app/models/validators/range_overlapping_validator.rb | 2 +- features/mezuro_range/create.feature | 1 - spec/models/validators/range_overlapping_validator_spec.rb | 9 +++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/models/validators/range_overlapping_validator.rb b/app/models/validators/range_overlapping_validator.rb index cbf85b4..c9f2393 100644 --- a/app/models/validators/range_overlapping_validator.rb +++ b/app/models/validators/range_overlapping_validator.rb @@ -1,7 +1,7 @@ class RangeOverlappingValidator < ActiveModel::Validator def validate(record) record.class.ranges_of(record.metric_configuration_id).each do |mezuro_range| - if overlaps?(mezuro_range,record) + if mezuro_range.id != record.id && overlaps?(mezuro_range,record) record.errors[:beginning] << "There's already a #{record.class} within these boundaries! Please, choose another ones." break end diff --git a/features/mezuro_range/create.feature b/features/mezuro_range/create.feature index 248e707..24361a6 100644 --- a/features/mezuro_range/create.feature +++ b/features/mezuro_range/create.feature @@ -150,7 +150,6 @@ Feature: Create range And I own a sample reading group And I have a sample metric configuration within the given mezuro configuration And I have a sample reading within the sample reading group labeled "My Reading" - And I have a sample range within the sample metric configuration with beginning "2" And I am at the New Range page And I click the -∞ link And I click the ∞ link diff --git a/spec/models/validators/range_overlapping_validator_spec.rb b/spec/models/validators/range_overlapping_validator_spec.rb index 656258b..3f25b45 100644 --- a/spec/models/validators/range_overlapping_validator_spec.rb +++ b/spec/models/validators/range_overlapping_validator_spec.rb @@ -12,10 +12,10 @@ describe RangeOverlappingValidator, :type => :model do end context 'not overlapping' do - let!(:not_overlapping_range) { FactoryGirl.build(:mezuro_range, beginning: 0.0, end: 'INF', metric_configuration_id: metric_configuration.id) } + let!(:not_overlapping_range) { FactoryGirl.build(:mezuro_range, id: 31, beginning: 0.0, end: 'INF', metric_configuration_id: metric_configuration.id) } before :each do - MezuroRange.expects(:ranges_of).with(metric_configuration.id).returns([not_overlapping_range]) + MezuroRange.expects(:ranges_of).with(metric_configuration.id).returns([range, not_overlapping_range]) end it 'is expected to not return errors' do @@ -24,11 +24,12 @@ describe RangeOverlappingValidator, :type => :model do end end + context 'overlapping' do - let!(:overlapping_range) { FactoryGirl.build(:mezuro_range, beginning: -2.0, end: -1.0, metric_configuration_id: metric_configuration.id) } + let!(:overlapping_range) { FactoryGirl.build(:mezuro_range, id: 31, beginning: '-INF', end: 'INF', metric_configuration_id: metric_configuration.id) } before :each do - MezuroRange.expects(:ranges_of).with(metric_configuration.id).returns([overlapping_range]) + MezuroRange.expects(:ranges_of).with(metric_configuration.id).returns([range, overlapping_range]) end it 'is expected to return errors' do -- libgit2 0.21.2