diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2017-07-06 07:20:36 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2017-07-06 07:20:36 +0000 |
commit | 6afe25ef336aca40b87cede499f8b8f5928129f6 (patch) | |
tree | 493201a50520e6b9c1f6f861aaeb8859a4b6f19f /spec/models/project_spec.rb | |
parent | 6c15905c3bd11209858eac8870ffa9211f08f157 (diff) | |
parent | cca9242085d73dff66a946af8a740a4f7419f84c (diff) | |
download | gitlab-ce-6afe25ef336aca40b87cede499f8b8f5928129f6.tar.gz |
Merge branch '32815--Add-Custom-CI-Config-Path' into 'master'
Resolve "Project option to allow customizing CI/CD config path"
Closes #32815 and #33130
See merge request !12509
Diffstat (limited to 'spec/models/project_spec.rb')
-rw-r--r-- | spec/models/project_spec.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index fd120a8024a..f50b4aea411 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -143,6 +143,10 @@ describe Project, models: true do it { is_expected.to validate_length_of(:description).is_at_most(2000) } + it { is_expected.to validate_length_of(:ci_config_path).is_at_most(255) } + it { is_expected.to allow_value('').for(:ci_config_path) } + it { is_expected.not_to allow_value('test/../foo').for(:ci_config_path) } + it { is_expected.to validate_presence_of(:creator) } it { is_expected.to validate_presence_of(:namespace) } @@ -1504,6 +1508,28 @@ describe Project, models: true do end end + describe '#ci_config_path=' do + let(:project) { create(:empty_project) } + + it 'sets nil' do + project.update!(ci_config_path: nil) + + expect(project.ci_config_path).to be_nil + end + + it 'sets a string' do + project.update!(ci_config_path: 'foo/.gitlab_ci.yml') + + expect(project.ci_config_path).to eq('foo/.gitlab_ci.yml') + end + + it 'sets a string but removes all leading slashes and null characters' do + project.update!(ci_config_path: "///f\0oo/\0/.gitlab_ci.yml") + + expect(project.ci_config_path).to eq('foo//.gitlab_ci.yml') + end + end + describe 'Project import job' do let(:project) { create(:empty_project, import_url: generate(:url)) } |