Commit b7c5b24e authored by Heinrich Lee Yu's avatar Heinrich Lee Yu

Merge branch 'mwaw/make_projects_operations_update_service_specs_dynamic' into 'master'

Make operations/update_service_spec.rb dynamic

See merge request gitlab-org/gitlab!25253
parents 70c362cf 73d8117c
...@@ -298,55 +298,28 @@ describe Projects::Operations::UpdateService do ...@@ -298,55 +298,28 @@ describe Projects::Operations::UpdateService do
manual_configuration: "0" manual_configuration: "0"
}) })
end end
let(:prometheus_params) do
{
"type" => "PrometheusService",
"title" => nil,
"active" => true,
"properties" => { "api_url" => "http://example.prometheus.com", "manual_configuration" => "0" },
"push_events" => true,
"issues_events" => true,
"merge_requests_events" => true,
"tag_push_events" => true,
"note_events" => true,
"category" => "monitoring",
"default" => false,
"wiki_page_events" => true,
"pipeline_events" => true,
"confidential_issues_events" => true,
"commit_events" => true,
"job_events" => true,
"confidential_note_events" => true,
"deployment_events" => false,
"description" => nil,
"comment_on_event_enabled" => true,
"template" => false
}
end
let(:params) do let(:params) do
{ {
prometheus_integration_attributes: { prometheus_integration_attributes: {
api_url: 'http://new.prometheus.com', 'api_url' => 'http://new.prometheus.com',
manual_configuration: '1' 'manual_configuration' => '1'
} }
} }
end end
it 'uses Project#find_or_initialize_service to include instance defined defaults and pass them to Projects::UpdateService', :aggregate_failures do it 'uses Project#find_or_initialize_service to include instance defined defaults and pass them to Projects::UpdateService', :aggregate_failures do
project_update_service = double(Projects::UpdateService) project_update_service = double(Projects::UpdateService)
prometheus_update_params = prometheus_params.merge('properties' => {
'api_url' => 'http://new.prometheus.com',
'manual_configuration' => '1'
})
expect(project) expect(project)
.to receive(:find_or_initialize_service) .to receive(:find_or_initialize_service)
.with('prometheus') .with('prometheus')
.and_return(prometheus_service) .and_return(prometheus_service)
expect(Projects::UpdateService) expect(Projects::UpdateService).to receive(:new) do |project_arg, user_arg, update_params_hash|
.to receive(:new) expect(project_arg).to eq project
.with(project, user, { prometheus_service_attributes: prometheus_update_params }) expect(user_arg).to eq user
.and_return(project_update_service) expect(update_params_hash[:prometheus_service_attributes]).to include('properties' => { 'api_url' => 'http://new.prometheus.com', 'manual_configuration' => '1' })
expect(update_params_hash[:prometheus_service_attributes]).not_to include(*%w(id project_id created_at updated_at))
end.and_return(project_update_service)
expect(project_update_service).to receive(:execute) expect(project_update_service).to receive(:execute)
subject.execute subject.execute
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment