summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/ci/config/external/file/local_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-04-20 10:00:54 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-04-20 10:00:54 +0000
commit3cccd102ba543e02725d247893729e5c73b38295 (patch)
treef36a04ec38517f5deaaacb5acc7d949688d1e187 /spec/lib/gitlab/ci/config/external/file/local_spec.rb
parent205943281328046ef7b4528031b90fbda70c75ac (diff)
downloadgitlab-ce-3cccd102ba543e02725d247893729e5c73b38295.tar.gz
Add latest changes from gitlab-org/gitlab@14-10-stable-eev14.10.0-rc42
Diffstat (limited to 'spec/lib/gitlab/ci/config/external/file/local_spec.rb')
-rw-r--r--spec/lib/gitlab/ci/config/external/file/local_spec.rb42
1 files changed, 32 insertions, 10 deletions
diff --git a/spec/lib/gitlab/ci/config/external/file/local_spec.rb b/spec/lib/gitlab/ci/config/external/file/local_spec.rb
index b9314dfc44e..c0a0b0009ce 100644
--- a/spec/lib/gitlab/ci/config/external/file/local_spec.rb
+++ b/spec/lib/gitlab/ci/config/external/file/local_spec.rb
@@ -55,6 +55,11 @@ RSpec.describe Gitlab::Ci::Config::External::File::Local do
end
describe '#valid?' do
+ subject(:valid?) do
+ local_file.validate!
+ local_file.valid?
+ end
+
context 'when is a valid local path' do
let(:location) { '/lib/gitlab/ci/templates/existent-file.yml' }
@@ -62,25 +67,19 @@ RSpec.describe Gitlab::Ci::Config::External::File::Local do
allow_any_instance_of(described_class).to receive(:fetch_local_content).and_return("image: 'ruby2:2'")
end
- it 'returns true' do
- expect(local_file.valid?).to be_truthy
- end
+ it { is_expected.to be_truthy }
end
context 'when it is not a valid local path' do
let(:location) { '/lib/gitlab/ci/templates/non-existent-file.yml' }
- it 'returns false' do
- expect(local_file.valid?).to be_falsy
- end
+ it { is_expected.to be_falsy }
end
context 'when it is not a yaml file' do
let(:location) { '/config/application.rb' }
- it 'returns false' do
- expect(local_file.valid?).to be_falsy
- end
+ it { is_expected.to be_falsy }
end
context 'when it is an empty file' do
@@ -89,6 +88,7 @@ RSpec.describe Gitlab::Ci::Config::External::File::Local do
it 'returns false and adds an error message about an empty file' do
allow_any_instance_of(described_class).to receive(:fetch_local_content).and_return("")
+ local_file.validate!
expect(local_file.errors).to include("Local file `/lib/gitlab/ci/templates/xxxxxx/existent-file.yml` is empty!")
end
end
@@ -98,7 +98,7 @@ RSpec.describe Gitlab::Ci::Config::External::File::Local do
let(:sha) { ':' }
it 'returns false and adds an error message stating that included file does not exist' do
- expect(local_file).not_to be_valid
+ expect(valid?).to be_falsy
expect(local_file.errors).to include("Sha #{sha} is not valid!")
end
end
@@ -140,6 +140,10 @@ RSpec.describe Gitlab::Ci::Config::External::File::Local do
let(:location) { '/lib/gitlab/ci/templates/secret_file.yml' }
let(:variables) { Gitlab::Ci::Variables::Collection.new([{ 'key' => 'GITLAB_TOKEN', 'value' => 'secret_file', 'masked' => true }]) }
+ before do
+ local_file.validate!
+ end
+
it 'returns an error message' do
expect(local_file.error_message).to eq("Local file `/lib/gitlab/ci/templates/xxxxxxxxxxx.yml` does not exist!")
end
@@ -174,6 +178,8 @@ RSpec.describe Gitlab::Ci::Config::External::File::Local do
allow(project.repository).to receive(:blob_data_at).with(sha, another_location)
.and_return(another_content)
+
+ local_file.validate!
end
it 'does expand hash to include the template' do
@@ -181,4 +187,20 @@ RSpec.describe Gitlab::Ci::Config::External::File::Local do
end
end
end
+
+ describe '#metadata' do
+ let(:location) { '/lib/gitlab/ci/templates/existent-file.yml' }
+
+ subject(:metadata) { local_file.metadata }
+
+ it {
+ is_expected.to eq(
+ context_project: project.full_path,
+ context_sha: '12345',
+ type: :local,
+ location: location,
+ extra: {}
+ )
+ }
+ end
end