diff options
Diffstat (limited to 'spec/requests/api/pages_domains_spec.rb')
-rw-r--r-- | spec/requests/api/pages_domains_spec.rb | 60 |
1 files changed, 47 insertions, 13 deletions
diff --git a/spec/requests/api/pages_domains_spec.rb b/spec/requests/api/pages_domains_spec.rb index cd4e8b30d8f..8ef4e899193 100644 --- a/spec/requests/api/pages_domains_spec.rb +++ b/spec/requests/api/pages_domains_spec.rb @@ -259,7 +259,15 @@ RSpec.describe API::PagesDomains do shared_examples_for 'post pages domains' do it 'creates a new pages domain' do - post api(route, user), params: params + expect { post api(route, user), params: params } + .to publish_event(PagesDomains::PagesDomainCreatedEvent) + .with( + project_id: project.id, + namespace_id: project.namespace.id, + root_namespace_id: project.root_namespace.id, + domain: params[:domain] + ) + pages_domain = PagesDomain.find_by(domain: json_response['domain']) expect(response).to have_gitlab_http_status(:created) @@ -378,6 +386,17 @@ RSpec.describe API::PagesDomains do expect(pages_domain_secure.auto_ssl_enabled).to be false end + it 'publishes PagesDomainUpdatedEvent event' do + expect { put api(route_secure_domain, user), params: { certificate: nil, key: nil } } + .to publish_event(PagesDomains::PagesDomainUpdatedEvent) + .with( + project_id: project.id, + namespace_id: project.namespace.id, + root_namespace_id: project.root_namespace.id, + domain: pages_domain_secure.domain + ) + end + it 'updates pages domain adding certificate' do put api(route_domain, user), params: params_secure pages_domain.reload @@ -446,22 +465,29 @@ RSpec.describe API::PagesDomains do end.to change { pages_domain.reload.certificate_source }.from('gitlab_provided').to('user_provided') end - it 'fails to update pages domain adding certificate without key' do - put api(route_domain, user), params: params_secure_nokey + context 'with invalid params' do + it 'fails to update pages domain adding certificate without key' do + put api(route_domain, user), params: params_secure_nokey - expect(response).to have_gitlab_http_status(:bad_request) - end + expect(response).to have_gitlab_http_status(:bad_request) + end - it 'fails to update pages domain adding certificate with missing chain' do - put api(route_domain, user), params: pages_domain_secure_missing_chain_params.slice(:certificate) + it 'does not publish PagesDomainUpdatedEvent event' do + expect { put api(route_domain, user), params: params_secure_nokey } + .not_to publish_event(PagesDomains::PagesDomainUpdatedEvent) + end - expect(response).to have_gitlab_http_status(:bad_request) - end + it 'fails to update pages domain adding certificate with missing chain' do + put api(route_domain, user), params: pages_domain_secure_missing_chain_params.slice(:certificate) + + expect(response).to have_gitlab_http_status(:bad_request) + end - it 'fails to update pages domain with key missmatch' do - put api(route_secure_domain, user), params: pages_domain_secure_key_missmatch_params.slice(:certificate, :key) + it 'fails to update pages domain with key missmatch' do + put api(route_secure_domain, user), params: pages_domain_secure_key_missmatch_params.slice(:certificate, :key) - expect(response).to have_gitlab_http_status(:bad_request) + expect(response).to have_gitlab_http_status(:bad_request) + end end end @@ -523,7 +549,15 @@ RSpec.describe API::PagesDomains do describe 'DELETE /projects/:project_id/pages/domains/:domain' do shared_examples_for 'delete pages domain' do it 'deletes a pages domain' do - delete api(route_domain, user) + expect { delete api(route_domain, user) } + .to change(PagesDomain, :count).by(-1) + .and publish_event(PagesDomains::PagesDomainDeletedEvent) + .with( + project_id: project.id, + namespace_id: project.namespace.id, + root_namespace_id: project.root_namespace.id, + domain: pages_domain.domain + ) expect(response).to have_gitlab_http_status(:no_content) end |