From 083179e936dba669085cda7bb159c10be4d9312a Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Tue, 27 Jun 2017 00:12:52 +0900 Subject: Add a test for checking validates :key does not override by concern --- spec/models/ci/variable_spec.rb | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/spec/models/ci/variable_spec.rb b/spec/models/ci/variable_spec.rb index ade279cd16f..b7821afbdc9 100644 --- a/spec/models/ci/variable_spec.rb +++ b/spec/models/ci/variable_spec.rb @@ -6,6 +6,40 @@ describe Ci::Variable, models: true do it { is_expected.to be_kind_of(HasVariable) } it { is_expected.to validate_uniqueness_of(:key).scoped_to(:project_id) } + describe 'validates :key' do + let(:project) { create(:project) } + + it 'be invalid if it exceeds maximum' do + expect do + create(:ci_variable, project: project, key: "A"*256) + end.to raise_error(ActiveRecord::RecordInvalid) + end + + it 'be invalid if violates constraints' do + expect do + create(:ci_variable, project: project, key: "*") + end.to raise_error(ActiveRecord::RecordInvalid) + end + + context 'when there is a variable' do + before do + create(:ci_variable, key: 'AAA', project: project) + end + + it 'be valid if it is unique' do + expect do + create(:ci_variable, project: project, key: 'CCC') + end.not_to raise_error + end + + it 'be invalid if it is duplicated' do + expect do + create(:ci_variable, project: project, key: 'AAA') + end.to raise_error(ActiveRecord::RecordInvalid) + end + end + end + describe '.unprotected' do subject { described_class.unprotected } -- cgit v1.2.1