Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-30 12:07:58 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-30 12:07:58 +0300
commit45b4df3e57c949c88107840c44ccbfaf2eabdf26 (patch)
treef73c1533a75b03d2ceb1361644e0d8ab97568a8f /spec/requests/api/container_registry_event_spec.rb
parent7421e6f9f2b5889b05738af7eba568af6ae3fcbc (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests/api/container_registry_event_spec.rb')
-rw-r--r--spec/requests/api/container_registry_event_spec.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/requests/api/container_registry_event_spec.rb b/spec/requests/api/container_registry_event_spec.rb
new file mode 100644
index 00000000000..9c144f80fd4
--- /dev/null
+++ b/spec/requests/api/container_registry_event_spec.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe API::ContainerRegistryEvent do
+ let(:secret_token) { 'secret_token' }
+ let(:events) { [{ action: 'push' }] }
+ let(:registry_headers) { { 'Content-Type' => ::API::ContainerRegistryEvent::DOCKER_DISTRIBUTION_EVENTS_V1_JSON } }
+
+ describe 'POST /container_registry_event/events' do
+ before do
+ allow(Gitlab.config.registry).to receive(:notification_secret) { secret_token }
+ end
+
+ subject do
+ post api('/container_registry_event/events'),
+ params: { events: events }.to_json,
+ headers: registry_headers.merge('Authorization' => secret_token)
+ end
+
+ it 'returns 200 status and events are passed to event handler' do
+ event = spy(:event)
+ allow(::ContainerRegistry::Event).to receive(:new).and_return(event)
+ expect(event).to receive(:supported?).and_return(true)
+
+ subject
+
+ expect(event).to have_received(:handle!).once
+ expect(event).to have_received(:track!).once
+ expect(response.status).to eq 200
+ end
+
+ it 'returns 401 error status when token is invalid' do
+ post api('/container_registry_event/events'),
+ params: { events: events }.to_json,
+ headers: registry_headers.merge('Authorization' => 'invalid_token')
+
+ expect(response.status).to eq 401
+ end
+ end
+end