diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-04-03 16:52:24 +0300 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2017-04-03 16:52:24 +0300 |
commit | baa00d542478759be225a45dc805d0314e1921d2 (patch) | |
tree | 8a959e57256764f536fe36db0b6876171843b70d /spec | |
parent | 0af4cbc57266cd7d2c433442c537da5c8970a3da (diff) |
Refactor container registry repository tag stubs
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/projects/registry/repositories_controller_spec.rb | 7 | ||||
-rw-r--r-- | spec/features/container_registry_spec.rb | 3 | ||||
-rw-r--r-- | spec/features/security/project/internal_access_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/security/project/private_access_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/security/project/public_access_spec.rb | 2 | ||||
-rw-r--r-- | spec/models/namespace_spec.rb | 2 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/projects/destroy_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/projects/transfer_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/support/stub_gitlab_calls.rb | 28 |
10 files changed, 35 insertions, 17 deletions
diff --git a/spec/controllers/projects/registry/repositories_controller_spec.rb b/spec/controllers/projects/registry/repositories_controller_spec.rb index e514f535f1d..29f0a65483f 100644 --- a/spec/controllers/projects/registry/repositories_controller_spec.rb +++ b/spec/controllers/projects/registry/repositories_controller_spec.rb @@ -24,10 +24,11 @@ describe Projects::Registry::RepositoriesController do end end - context 'when root container repository does not exist' do + context 'when root container repository is not created' do context 'when there are tags for this repository' do before do - stub_container_registry_tags(%w[rc1 latest]) + stub_container_registry_tags(repository: project.full_path, + tags: %w[rc1 latest]) end it 'successfully renders container repositories' do @@ -44,7 +45,7 @@ describe Projects::Registry::RepositoriesController do context 'when there are no tags for this repository' do before do - stub_container_registry_tags(*[]) + stub_container_registry_tags(repository: :any, tags: []) end it 'successfully renders container repositories' do diff --git a/spec/features/container_registry_spec.rb b/spec/features/container_registry_spec.rb index 42431cbe731..fa7adbe71ea 100644 --- a/spec/features/container_registry_spec.rb +++ b/spec/features/container_registry_spec.rb @@ -12,7 +12,7 @@ describe "Container Registry" do login_as(user) project.add_developer(user) stub_container_registry_config(enabled: true) - stub_container_registry_tags(%w[latest]) + stub_container_registry_tags(repository: :any, tags: []) end context 'when there are no image repositories' do @@ -25,6 +25,7 @@ describe "Container Registry" do context 'when there are image repositories' do before do + stub_container_registry_tags(repository: %r{my/image}, tags: %w[latest]) project.container_repositories << container_repository end diff --git a/spec/features/security/project/internal_access_spec.rb b/spec/features/security/project/internal_access_spec.rb index a961d8b4f69..6ecdc8cbb71 100644 --- a/spec/features/security/project/internal_access_spec.rb +++ b/spec/features/security/project/internal_access_spec.rb @@ -446,7 +446,7 @@ describe "Internal Project Access", feature: true do let(:container_repository) { create(:container_repository) } before do - stub_container_registry_tags('latest') + stub_container_registry_tags(repository: :any, tags: ['latest']) stub_container_registry_config(enabled: true) project.container_repositories << container_repository end diff --git a/spec/features/security/project/private_access_spec.rb b/spec/features/security/project/private_access_spec.rb index b7e42e67d82..a8fc0624588 100644 --- a/spec/features/security/project/private_access_spec.rb +++ b/spec/features/security/project/private_access_spec.rb @@ -435,7 +435,7 @@ describe "Private Project Access", feature: true do let(:container_repository) { create(:container_repository) } before do - stub_container_registry_tags('latest') + stub_container_registry_tags(repository: :any, tags: ['latest']) stub_container_registry_config(enabled: true) project.container_repositories << container_repository end diff --git a/spec/features/security/project/public_access_spec.rb b/spec/features/security/project/public_access_spec.rb index 02660984b29..08cf2bf5291 100644 --- a/spec/features/security/project/public_access_spec.rb +++ b/spec/features/security/project/public_access_spec.rb @@ -446,7 +446,7 @@ describe "Public Project Access", feature: true do let(:container_repository) { create(:container_repository) } before do - stub_container_registry_tags('latest') + stub_container_registry_tags(repository: :any, tags:['latest']) stub_container_registry_config(enabled: true) project.container_repositories << container_repository end diff --git a/spec/models/namespace_spec.rb b/spec/models/namespace_spec.rb index e1bfd20a6aa..197fd558dd7 100644 --- a/spec/models/namespace_spec.rb +++ b/spec/models/namespace_spec.rb @@ -153,7 +153,7 @@ describe Namespace, models: true do before do stub_container_registry_config(enabled: true) - stub_container_registry_tags('tag') + stub_container_registry_tags(repository: :any, tags: ['tag']) create(:empty_project, namespace: @namespace, container_repositories: [container_repository]) diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 841c7d4cb5b..062d7fdd4ae 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1190,7 +1190,7 @@ describe Project, models: true do before do stub_container_registry_config(enabled: true) - stub_container_registry_tags('tag') + stub_container_registry_tags(repository: :any, tags: ['tag']) project.container_repositories << container_repository end diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb index cf1f90becfd..5ef07c8275e 100644 --- a/spec/services/projects/destroy_service_spec.rb +++ b/spec/services/projects/destroy_service_spec.rb @@ -94,7 +94,7 @@ describe Projects::DestroyService, services: true do before do stub_container_registry_config(enabled: true) - stub_container_registry_tags('tag') + stub_container_registry_tags(repository: :any, tags: ['tag']) project.container_repositories << container_repository end diff --git a/spec/services/projects/transfer_service_spec.rb b/spec/services/projects/transfer_service_spec.rb index 81e15f9dba6..29ccce59c53 100644 --- a/spec/services/projects/transfer_service_spec.rb +++ b/spec/services/projects/transfer_service_spec.rb @@ -33,7 +33,7 @@ describe Projects::TransferService, services: true do before do stub_container_registry_config(enabled: true) - stub_container_registry_tags('tag') + stub_container_registry_tags(repository: :any, tags: ['tag']) project.container_repositories << container_repository end diff --git a/spec/support/stub_gitlab_calls.rb b/spec/support/stub_gitlab_calls.rb index dbf3ace37c3..ded2d593059 100644 --- a/spec/support/stub_gitlab_calls.rb +++ b/spec/support/stub_gitlab_calls.rb @@ -31,20 +31,36 @@ module StubGitlabCalls .to receive(:full_access_token).and_return('token') end - def stub_container_registry_tags(*tags) + def stub_container_registry_tags(repository: :any, tags:) + repository = any_args if repository == :any + allow_any_instance_of(ContainerRegistry::Client) - .to receive(:repository_tags).and_return({ 'tags' => tags }) + .to receive(:repository_tags).with(repository) + .and_return({ 'tags' => tags }) allow_any_instance_of(ContainerRegistry::Client) - .to receive(:repository_manifest).and_return( - JSON.parse(File.read(Rails.root + 'spec/fixtures/container_registry/tag_manifest.json'))) + .to receive(:repository_manifest).with(repository) + .and_return(stub_container_registry_tag_manifest) - allow_any_instance_of(ContainerRegistry::Client).to receive(:blob).and_return( - File.read(Rails.root + 'spec/fixtures/container_registry/config_blob.json')) + allow_any_instance_of(ContainerRegistry::Client) + .to receive(:blob).with(repository) + .and_return(stub_container_registry_blob) end private + def stub_container_registry_tag_manifest + fixture_path = 'spec/fixtures/container_registry/tag_manifest.json' + + JSON.parse(File.read(Rails.root + fixture_path)) + end + + def stub_container_registry_blob + fixture_path = 'spec/fixtures/container_registry/config_blob.json' + + File.read(Rails.root + fixture_path) + end + def gitlab_url Gitlab.config.gitlab.url end |