Commit 460d5475 authored by Dylan Griffith's avatar Dylan Griffith

Merge branch 'ajk-globalid-metrics' into 'master'

[GraphQL] Metrics: use Global-ID scalar

See merge request gitlab-org/gitlab!36100
parents f923cc7a 4c510efb
......@@ -9,8 +9,7 @@ module Mutations
authorize :delete_metrics_dashboard_annotation
argument :id,
GraphQL::ID_TYPE,
argument :id, ::Types::GlobalIDType[::Metrics::Dashboard::Annotation],
required: true,
description: 'The global ID of the annotation to delete'
......
......@@ -5265,7 +5265,7 @@ input DeleteAnnotationInput {
"""
The global ID of the annotation to delete
"""
id: ID!
id: MetricsDashboardAnnotationID!
}
"""
......@@ -13465,6 +13465,11 @@ type MetricsDashboardAnnotationEdge {
node: MetricsDashboardAnnotation
}
"""
Identifier of Metrics::Dashboard::Annotation
"""
scalar MetricsDashboardAnnotationID
"""
Represents a milestone
"""
......
......@@ -14404,7 +14404,7 @@
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "ID",
"name": "MetricsDashboardAnnotationID",
"ofType": null
}
},
......@@ -37039,6 +37039,16 @@
"enumValues": null,
"possibleTypes": null
},
{
"kind": "SCALAR",
"name": "MetricsDashboardAnnotationID",
"description": "Identifier of Metrics::Dashboard::Annotation",
"fields": null,
"inputFields": null,
"interfaces": null,
"enumValues": null,
"possibleTypes": null
},
{
"kind": "OBJECT",
"name": "Milestone",
......@@ -101,9 +101,7 @@ RSpec.describe Mutations::Metrics::Dashboard::Annotations::Create do
graphql_mutation(:create_annotation, variables)
end
it_behaves_like 'a mutation that returns top-level errors' do
let(:match_errors) { include(/is not a valid Global ID/) }
end
it_behaves_like 'an invalid argument to the mutation', argument_name: :environment_id
end
end
end
......@@ -190,9 +188,7 @@ RSpec.describe Mutations::Metrics::Dashboard::Annotations::Create do
graphql_mutation(:create_annotation, variables)
end
it_behaves_like 'a mutation that returns top-level errors' do
let(:match_errors) { include(/is not a valid Global ID/) }
end
it_behaves_like 'an invalid argument to the mutation', argument_name: :cluster_id
end
end
......@@ -213,15 +209,17 @@ RSpec.describe Mutations::Metrics::Dashboard::Annotations::Create do
it_behaves_like 'a mutation that returns top-level errors', errors: [described_class::ANNOTATION_SOURCE_ARGUMENT_ERROR]
end
context 'when a non-cluster or environment id is provided' do
let(:gid) { { environment_id: project.to_global_id.to_s } }
[:environment_id, :cluster_id].each do |arg_name|
context "when #{arg_name} is given an ID of the wrong type" do
let(:gid) { global_id_of(project) }
let(:mutation) do
variables = {
starting_at: starting_at,
ending_at: ending_at,
dashboard_path: dashboard_path,
description: description
}.merge!(gid)
description: description,
arg_name => gid
}
graphql_mutation(:create_annotation, variables)
end
......@@ -230,18 +228,7 @@ RSpec.describe Mutations::Metrics::Dashboard::Annotations::Create do
project.add_developer(current_user)
end
describe 'non-environment id' do
it_behaves_like 'a mutation that returns top-level errors' do
let(:match_errors) { include(/does not represent an instance of Environment/) }
end
end
describe 'non-cluster id' do
let(:gid) { { cluster_id: project.to_global_id.to_s } }
it_behaves_like 'a mutation that returns top-level errors' do
let(:match_errors) { include(/does not represent an instance of Clusters::Cluster/) }
end
it_behaves_like 'an invalid argument to the mutation', argument_name: arg_name
end
end
end
......@@ -36,7 +36,7 @@ RSpec.describe Mutations::Metrics::Dashboard::Annotations::Delete do
let(:variables) { { id: GitlabSchema.id_from_object(project).to_s } }
it_behaves_like 'a mutation that returns top-level errors' do
let(:match_errors) { eq(["#{variables[:id]} is not a valid ID for #{annotation.class}."]) }
let(:match_errors) { contain_exactly(include('invalid value for id')) }
end
end
......
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