diff options
author | Shinya Maeda <shinya@gitlab.com> | 2017-06-26 18:12:52 +0300 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2017-06-28 09:20:50 +0300 |
commit | 083179e936dba669085cda7bb159c10be4d9312a (patch) | |
tree | 93afaac227be2a98b89c66b8a6260e5fdc6d61b1 /spec/models | |
parent | 41aebaa103a8c9ef6ae5edef5cc500ba6ca24bb9 (diff) |
Add a test for checking validates :key does not override by concern
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/ci/variable_spec.rb | 34 |
1 files changed, 34 insertions, 0 deletions
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 } |