beginning_uniqueness_validator_spec.rb
1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require 'rails_helper'
require 'validators/beginning_uniqueness_validator'
describe BeginningUniquenessValidator, :type => :model do
pending 'waiting for kalibro configurations integration' do
describe 'methods' do
describe 'validate_each' do
let(:metric_configuration) { FactoryGirl.build(:metric_configuration) }
context 'without saved mezuro_range' do
before :each do
MezuroRange.expects(:ranges_of).with(metric_configuration.id).returns([])
MezuroRange.expects(:request).returns(42)
RangeOverlappingValidator.any_instance.stubs(:validate)
end
subject { FactoryGirl.build(:mezuro_range, metric_configuration_id: metric_configuration.id) }
it 'should contain no errors' do
subject.save
expect(subject.errors).to be_empty
end
end
context 'with beginning already taken by another mezuro_range' do
let(:another_mezuro_range) { FactoryGirl.build(:another_mezuro_range, id: 3, metric_configuration_id: metric_configuration.id) }
before :each do
@subject = FactoryGirl.build(:mezuro_range, metric_configuration_id: metric_configuration.id)
MezuroRange.expects(:ranges_of).with(@subject.metric_configuration_id).returns([another_mezuro_range])
RangeOverlappingValidator.any_instance.stubs(:validate)
end
it 'should contain errors' do
@subject.save
expect(@subject.errors[:beginning]).to eq(["There is already a MezuroRange with beginning #{@subject.beginning}! Please, choose another one."])
end
end
end
end
end
end