summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-06-27 00:12:52 +0900
committerShinya Maeda <shinya@gitlab.com>2017-06-28 15:20:50 +0900
commit083179e936dba669085cda7bb159c10be4d9312a (patch)
tree93afaac227be2a98b89c66b8a6260e5fdc6d61b1
parent41aebaa103a8c9ef6ae5edef5cc500ba6ca24bb9 (diff)
downloadgitlab-ce-083179e936dba669085cda7bb159c10be4d9312a.tar.gz
Add a test for checking validates :key does not override by concern
-rw-r--r--spec/models/ci/variable_spec.rb34
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 }