diff options
author | Reuben Pereira <rpereira@gitlab.com> | 2019-03-01 14:51:54 +0000 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2019-03-01 14:51:54 +0000 |
commit | 43e713eb41117138c13ee4b9279321ca4331a302 (patch) | |
tree | 1f2047b2ba5279fdad38b0da18db32ba350311d8 /spec/controllers | |
parent | 4471ab81c8484d9942183bd8114a757b8630b8ec (diff) | |
download | gitlab-ce-43e713eb41117138c13ee4b9279321ca4331a302.tar.gz |
Refactor model and spec
- Move some specs into contexts
- Let get_slugs method take a parameter and return a specific slug.
- Add rescues when using Addressable::URI.
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/settings/operations_controller_spec.rb | 63 |
1 files changed, 40 insertions, 23 deletions
diff --git a/spec/controllers/projects/settings/operations_controller_spec.rb b/spec/controllers/projects/settings/operations_controller_spec.rb index d989ec22481..02a392f23c2 100644 --- a/spec/controllers/projects/settings/operations_controller_spec.rb +++ b/spec/controllers/projects/settings/operations_controller_spec.rb @@ -74,38 +74,55 @@ describe Projects::Settings::OperationsController do { error_tracking_setting_attributes: { enabled: '1', - api_url: 'http://url', - token: 'token' + api_host: 'http://url', + token: 'token', + project: { + slug: 'sentry-project', + name: 'Sentry Project', + organization_slug: 'sentry-org', + organization_name: 'Sentry Org' + } } } end + let(:error_tracking_permitted) do ActionController::Parameters.new(error_tracking_params).permit! end - context 'when update succeeds' do - before do - stub_operations_update_service_returning(status: :success) - end - - it 'shows a notice' do - patch :update, params: project_params(project, error_tracking_params) - - expect(response).to redirect_to(operations_url) - expect(flash[:notice]).to eq _('Your changes have been saved') - end - end - - context 'when update fails' do - before do - stub_operations_update_service_returning(status: :error) + context 'format json' do + context 'when update succeeds' do + before do + stub_operations_update_service_returning(status: :success) + end + + it 'returns success status' do + patch :update, + params: project_params(project, error_tracking_params), + format: :json + + expect(response).to have_gitlab_http_status(:ok) + expect(json_response).to eq('status' => 'success') + expect(flash[:notice]).to eq('Your changes have been saved') + end end - it 'renders show page' do - patch :update, params: project_params(project, error_tracking_params) - - expect(response).to have_gitlab_http_status(:ok) - expect(response).to render_template(:show) + context 'when update fails' do + before do + stub_operations_update_service_returning( + status: :error, + message: 'error message' + ) + end + + it 'returns error' do + patch :update, + params: project_params(project, error_tracking_params), + format: :json + + expect(response).to have_gitlab_http_status(:bad_request) + expect(json_response['message']).not_to be_nil + end end end |