diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-30 12:07:58 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-30 12:07:58 +0300 |
commit | 45b4df3e57c949c88107840c44ccbfaf2eabdf26 (patch) | |
tree | f73c1533a75b03d2ceb1361644e0d8ab97568a8f /spec/requests/api/container_registry_event_spec.rb | |
parent | 7421e6f9f2b5889b05738af7eba568af6ae3fcbc (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.rb | 41 |
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 |