summaryrefslogtreecommitdiff
path: root/spec/graphql/types
diff options
context:
space:
mode:
Diffstat (limited to 'spec/graphql/types')
-rw-r--r--spec/graphql/types/alert_management/alert_status_count_type_spec.rb20
-rw-r--r--spec/graphql/types/alert_management/alert_type_spec.rb31
-rw-r--r--spec/graphql/types/alert_management/severity_enum_spec.rb11
-rw-r--r--spec/graphql/types/alert_management/status_enum_spec.rb24
-rw-r--r--spec/graphql/types/award_emojis/award_emoji_type_spec.rb6
-rw-r--r--spec/graphql/types/blob_viewers/type_enum_spec.rb2
-rw-r--r--spec/graphql/types/board_list_type_spec.rb13
-rw-r--r--spec/graphql/types/board_type_spec.rb4
-rw-r--r--spec/graphql/types/branch_type_spec.rb9
-rw-r--r--spec/graphql/types/ci/detailed_status_type_spec.rb2
-rw-r--r--spec/graphql/types/ci/pipeline_type_spec.rb4
-rw-r--r--spec/graphql/types/commit_type_spec.rb6
-rw-r--r--spec/graphql/types/design_management/design_at_version_type_spec.rb16
-rw-r--r--spec/graphql/types/design_management/design_collection_type_spec.rb13
-rw-r--r--spec/graphql/types/design_management/design_type_spec.rb13
-rw-r--r--spec/graphql/types/design_management/design_version_event_enum_spec.rb11
-rw-r--r--spec/graphql/types/design_management/version_type_spec.rb13
-rw-r--r--spec/graphql/types/design_management_type_spec.rb7
-rw-r--r--spec/graphql/types/diff_refs_type_spec.rb10
-rw-r--r--spec/graphql/types/environment_type_spec.rb4
-rw-r--r--spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb4
-rw-r--r--spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb4
-rw-r--r--spec/graphql/types/error_tracking/sentry_error_stack_trace_entry_type_spec.rb2
-rw-r--r--spec/graphql/types/error_tracking/sentry_error_stack_trace_type_spec.rb4
-rw-r--r--spec/graphql/types/error_tracking/sentry_error_type_spec.rb2
-rw-r--r--spec/graphql/types/grafana_integration_type_spec.rb6
-rw-r--r--spec/graphql/types/group_type_spec.rb6
-rw-r--r--spec/graphql/types/issuable_sort_enum_spec.rb15
-rw-r--r--spec/graphql/types/issuable_state_enum_spec.rb2
-rw-r--r--spec/graphql/types/issue_sort_enum_spec.rb6
-rw-r--r--spec/graphql/types/issue_state_enum_spec.rb2
-rw-r--r--spec/graphql/types/issue_type_spec.rb11
-rw-r--r--spec/graphql/types/jira_import_type_spec.rb4
-rw-r--r--spec/graphql/types/label_type_spec.rb2
-rw-r--r--spec/graphql/types/merge_request_state_enum_spec.rb2
-rw-r--r--spec/graphql/types/merge_request_type_spec.rb6
-rw-r--r--spec/graphql/types/metadata_type_spec.rb4
-rw-r--r--spec/graphql/types/metrics/dashboard_type_spec.rb2
-rw-r--r--spec/graphql/types/metrics/dashboards/annotation_type_spec.rb4
-rw-r--r--spec/graphql/types/milestone_type_spec.rb4
-rw-r--r--spec/graphql/types/namespace_type_spec.rb4
-rw-r--r--spec/graphql/types/notes/discussion_type_spec.rb4
-rw-r--r--spec/graphql/types/notes/note_type_spec.rb4
-rw-r--r--spec/graphql/types/notes/noteable_type_spec.rb3
-rw-r--r--spec/graphql/types/permission_types/issue_spec.rb5
-rw-r--r--spec/graphql/types/permission_types/merge_request_type_spec.rb2
-rw-r--r--spec/graphql/types/permission_types/project_spec.rb2
-rw-r--r--spec/graphql/types/project_type_spec.rb23
-rw-r--r--spec/graphql/types/projects/base_service_type_spec.rb4
-rw-r--r--spec/graphql/types/projects/jira_service_type_spec.rb4
-rw-r--r--spec/graphql/types/projects/service_type_spec.rb2
-rw-r--r--spec/graphql/types/projects/services_enum_spec.rb2
-rw-r--r--spec/graphql/types/query_type_spec.rb2
-rw-r--r--spec/graphql/types/release_type_spec.rb37
-rw-r--r--spec/graphql/types/repository_type_spec.rb8
-rw-r--r--spec/graphql/types/root_storage_statistics_type_spec.rb4
-rw-r--r--spec/graphql/types/snippet_type_spec.rb10
-rw-r--r--spec/graphql/types/snippets/blob_type_spec.rb16
-rw-r--r--spec/graphql/types/snippets/blob_viewer_type_spec.rb81
-rw-r--r--spec/graphql/types/time_type_spec.rb2
-rw-r--r--spec/graphql/types/todo_type_spec.rb2
-rw-r--r--spec/graphql/types/tree/blob_type_spec.rb4
-rw-r--r--spec/graphql/types/tree/submodule_type_spec.rb4
-rw-r--r--spec/graphql/types/tree/tree_entry_type_spec.rb4
-rw-r--r--spec/graphql/types/tree/tree_type_spec.rb4
-rw-r--r--spec/graphql/types/tree/type_enum_spec.rb2
-rw-r--r--spec/graphql/types/user_type_spec.rb6
67 files changed, 448 insertions, 108 deletions
diff --git a/spec/graphql/types/alert_management/alert_status_count_type_spec.rb b/spec/graphql/types/alert_management/alert_status_count_type_spec.rb
new file mode 100644
index 00000000000..1c56028425e
--- /dev/null
+++ b/spec/graphql/types/alert_management/alert_status_count_type_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['AlertManagementAlertStatusCountsType'] do
+ specify { expect(described_class.graphql_name).to eq('AlertManagementAlertStatusCountsType') }
+
+ it 'exposes the expected fields' do
+ expected_fields = %i[
+ all
+ open
+ triggered
+ acknowledged
+ resolved
+ ignored
+ ]
+
+ expect(described_class).to have_graphql_fields(*expected_fields)
+ end
+end
diff --git a/spec/graphql/types/alert_management/alert_type_spec.rb b/spec/graphql/types/alert_management/alert_type_spec.rb
new file mode 100644
index 00000000000..9c326f30e3c
--- /dev/null
+++ b/spec/graphql/types/alert_management/alert_type_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['AlertManagementAlert'] do
+ specify { expect(described_class.graphql_name).to eq('AlertManagementAlert') }
+
+ specify { expect(described_class).to require_graphql_authorizations(:read_alert_management_alert) }
+
+ it 'exposes the expected fields' do
+ expected_fields = %i[
+ iid
+ issue_iid
+ title
+ description
+ severity
+ status
+ service
+ monitoring_tool
+ hosts
+ started_at
+ ended_at
+ event_count
+ details
+ created_at
+ updated_at
+ ]
+
+ expect(described_class).to have_graphql_fields(*expected_fields)
+ end
+end
diff --git a/spec/graphql/types/alert_management/severity_enum_spec.rb b/spec/graphql/types/alert_management/severity_enum_spec.rb
new file mode 100644
index 00000000000..ca5aa826fe5
--- /dev/null
+++ b/spec/graphql/types/alert_management/severity_enum_spec.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['AlertManagementSeverity'] do
+ specify { expect(described_class.graphql_name).to eq('AlertManagementSeverity') }
+
+ it 'exposes all the severity values' do
+ expect(described_class.values.keys).to include(*%w[CRITICAL HIGH MEDIUM LOW INFO UNKNOWN])
+ end
+end
diff --git a/spec/graphql/types/alert_management/status_enum_spec.rb b/spec/graphql/types/alert_management/status_enum_spec.rb
new file mode 100644
index 00000000000..240d8863c97
--- /dev/null
+++ b/spec/graphql/types/alert_management/status_enum_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['AlertManagementStatus'] do
+ specify { expect(described_class.graphql_name).to eq('AlertManagementStatus') }
+
+ describe 'statuses' do
+ using RSpec::Parameterized::TableSyntax
+
+ where(:status_name, :status_value) do
+ 'TRIGGERED' | 0
+ 'ACKNOWLEDGED' | 1
+ 'RESOLVED' | 2
+ 'IGNORED' | 3
+ end
+
+ with_them do
+ it 'exposes a status with the correct value' do
+ expect(described_class.values[status_name].value).to eq(status_value)
+ end
+ end
+ end
+end
diff --git a/spec/graphql/types/award_emojis/award_emoji_type_spec.rb b/spec/graphql/types/award_emojis/award_emoji_type_spec.rb
index de5ece3b749..4e06329506d 100644
--- a/spec/graphql/types/award_emojis/award_emoji_type_spec.rb
+++ b/spec/graphql/types/award_emojis/award_emoji_type_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
describe GitlabSchema.types['AwardEmoji'] do
- it { expect(described_class.graphql_name).to eq('AwardEmoji') }
+ specify { expect(described_class.graphql_name).to eq('AwardEmoji') }
- it { expect(described_class).to require_graphql_authorizations(:read_emoji) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_emoji) }
- it { expect(described_class).to have_graphql_fields(:description, :unicode_version, :emoji, :name, :unicode, :user) }
+ specify { expect(described_class).to have_graphql_fields(:description, :unicode_version, :emoji, :name, :unicode, :user) }
end
diff --git a/spec/graphql/types/blob_viewers/type_enum_spec.rb b/spec/graphql/types/blob_viewers/type_enum_spec.rb
index 7bd4352f388..09664382af9 100644
--- a/spec/graphql/types/blob_viewers/type_enum_spec.rb
+++ b/spec/graphql/types/blob_viewers/type_enum_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::BlobViewers::TypeEnum do
- it { expect(described_class.graphql_name).to eq('BlobViewersType') }
+ specify { expect(described_class.graphql_name).to eq('BlobViewersType') }
it 'exposes all tree entry types' do
expect(described_class.values.keys).to include(*%w[rich simple auxiliary])
diff --git a/spec/graphql/types/board_list_type_spec.rb b/spec/graphql/types/board_list_type_spec.rb
new file mode 100644
index 00000000000..69597fc9617
--- /dev/null
+++ b/spec/graphql/types/board_list_type_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['BoardList'] do
+ specify { expect(described_class.graphql_name).to eq('BoardList') }
+
+ it 'has specific fields' do
+ expected_fields = %w[id list_type position label]
+
+ expect(described_class).to include_graphql_fields(*expected_fields)
+ end
+end
diff --git a/spec/graphql/types/board_type_spec.rb b/spec/graphql/types/board_type_spec.rb
index 1ca4bf18b57..5d87a1757b5 100644
--- a/spec/graphql/types/board_type_spec.rb
+++ b/spec/graphql/types/board_type_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
describe GitlabSchema.types['Board'] do
- it { expect(described_class.graphql_name).to eq('Board') }
+ specify { expect(described_class.graphql_name).to eq('Board') }
- it { expect(described_class).to require_graphql_authorizations(:read_board) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_board) }
it 'has specific fields' do
expected_fields = %w[id name]
diff --git a/spec/graphql/types/branch_type_spec.rb b/spec/graphql/types/branch_type_spec.rb
new file mode 100644
index 00000000000..f58b514116d
--- /dev/null
+++ b/spec/graphql/types/branch_type_spec.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['Branch'] do
+ it { expect(described_class.graphql_name).to eq('Branch') }
+
+ it { expect(described_class).to have_graphql_fields(:name, :commit) }
+end
diff --git a/spec/graphql/types/ci/detailed_status_type_spec.rb b/spec/graphql/types/ci/detailed_status_type_spec.rb
index 169a03c770b..c62c8f23728 100644
--- a/spec/graphql/types/ci/detailed_status_type_spec.rb
+++ b/spec/graphql/types/ci/detailed_status_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::Ci::DetailedStatusType do
- it { expect(described_class.graphql_name).to eq('DetailedStatus') }
+ specify { expect(described_class.graphql_name).to eq('DetailedStatus') }
it "has all fields" do
expect(described_class).to have_graphql_fields(:group, :icon, :favicon,
diff --git a/spec/graphql/types/ci/pipeline_type_spec.rb b/spec/graphql/types/ci/pipeline_type_spec.rb
index 2fafc1bc13f..d56cff12105 100644
--- a/spec/graphql/types/ci/pipeline_type_spec.rb
+++ b/spec/graphql/types/ci/pipeline_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::Ci::PipelineType do
- it { expect(described_class.graphql_name).to eq('Pipeline') }
+ specify { expect(described_class.graphql_name).to eq('Pipeline') }
- it { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Ci::Pipeline) }
+ specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Ci::Pipeline) }
end
diff --git a/spec/graphql/types/commit_type_spec.rb b/spec/graphql/types/commit_type_spec.rb
index f5f99229f3a..88b450e3924 100644
--- a/spec/graphql/types/commit_type_spec.rb
+++ b/spec/graphql/types/commit_type_spec.rb
@@ -3,13 +3,13 @@
require 'spec_helper'
describe GitlabSchema.types['Commit'] do
- it { expect(described_class.graphql_name).to eq('Commit') }
+ specify { expect(described_class.graphql_name).to eq('Commit') }
- it { expect(described_class).to require_graphql_authorizations(:download_code) }
+ specify { expect(described_class).to require_graphql_authorizations(:download_code) }
it 'contains attributes related to commit' do
expect(described_class).to have_graphql_fields(
- :id, :sha, :title, :description, :message, :authored_date,
+ :id, :sha, :title, :description, :message, :title_html, :authored_date,
:author_name, :author_gravatar, :author, :web_url, :latest_pipeline,
:pipelines, :signature_html
)
diff --git a/spec/graphql/types/design_management/design_at_version_type_spec.rb b/spec/graphql/types/design_management/design_at_version_type_spec.rb
new file mode 100644
index 00000000000..1453d73d59c
--- /dev/null
+++ b/spec/graphql/types/design_management/design_at_version_type_spec.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['DesignAtVersion'] do
+ it_behaves_like 'a GraphQL type with design fields' do
+ let(:extra_design_fields) { %i[version design] }
+ let_it_be(:design) { create(:design, :with_versions) }
+ let(:object_id) do
+ version = design.versions.first
+ GitlabSchema.id_from_object(create(:design_at_version, design: design, version: version))
+ end
+ let_it_be(:object_id_b) { GitlabSchema.id_from_object(create(:design_at_version)) }
+ let(:object_type) { ::Types::DesignManagement::DesignAtVersionType }
+ end
+end
diff --git a/spec/graphql/types/design_management/design_collection_type_spec.rb b/spec/graphql/types/design_management/design_collection_type_spec.rb
new file mode 100644
index 00000000000..65150f0971d
--- /dev/null
+++ b/spec/graphql/types/design_management/design_collection_type_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['DesignCollection'] do
+ it { expect(described_class).to require_graphql_authorizations(:read_design) }
+
+ it 'has the expected fields' do
+ expected_fields = %i[project issue designs versions version designAtVersion design]
+
+ expect(described_class).to have_graphql_fields(*expected_fields)
+ end
+end
diff --git a/spec/graphql/types/design_management/design_type_spec.rb b/spec/graphql/types/design_management/design_type_spec.rb
new file mode 100644
index 00000000000..75b4cd66d5e
--- /dev/null
+++ b/spec/graphql/types/design_management/design_type_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['Design'] do
+ it_behaves_like 'a GraphQL type with design fields' do
+ let(:extra_design_fields) { %i[notes discussions versions] }
+ let_it_be(:design) { create(:design, :with_versions) }
+ let(:object_id) { GitlabSchema.id_from_object(design) }
+ let_it_be(:object_id_b) { GitlabSchema.id_from_object(create(:design, :with_versions)) }
+ let(:object_type) { ::Types::DesignManagement::DesignType }
+ end
+end
diff --git a/spec/graphql/types/design_management/design_version_event_enum_spec.rb b/spec/graphql/types/design_management/design_version_event_enum_spec.rb
new file mode 100644
index 00000000000..a65f1bb5990
--- /dev/null
+++ b/spec/graphql/types/design_management/design_version_event_enum_spec.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['DesignVersionEvent'] do
+ it { expect(described_class.graphql_name).to eq('DesignVersionEvent') }
+
+ it 'exposes the correct event states' do
+ expect(described_class.values.keys).to include(*%w[CREATION MODIFICATION DELETION NONE])
+ end
+end
diff --git a/spec/graphql/types/design_management/version_type_spec.rb b/spec/graphql/types/design_management/version_type_spec.rb
new file mode 100644
index 00000000000..3317c4c6571
--- /dev/null
+++ b/spec/graphql/types/design_management/version_type_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['DesignVersion'] do
+ it { expect(described_class).to require_graphql_authorizations(:read_design) }
+
+ it 'has the expected fields' do
+ expected_fields = %i[id sha designs design_at_version designs_at_version]
+
+ expect(described_class).to have_graphql_fields(*expected_fields)
+ end
+end
diff --git a/spec/graphql/types/design_management_type_spec.rb b/spec/graphql/types/design_management_type_spec.rb
new file mode 100644
index 00000000000..a6204f20f23
--- /dev/null
+++ b/spec/graphql/types/design_management_type_spec.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['DesignManagement'] do
+ it { expect(described_class).to have_graphql_fields(:version, :design_at_version) }
+end
diff --git a/spec/graphql/types/diff_refs_type_spec.rb b/spec/graphql/types/diff_refs_type_spec.rb
index a6ead27455f..3165e642452 100644
--- a/spec/graphql/types/diff_refs_type_spec.rb
+++ b/spec/graphql/types/diff_refs_type_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
describe GitlabSchema.types['DiffRefs'] do
- it { expect(described_class.graphql_name).to eq('DiffRefs') }
+ specify { expect(described_class.graphql_name).to eq('DiffRefs') }
- it { expect(described_class).to have_graphql_fields(:head_sha, :base_sha, :start_sha).only }
+ specify { expect(described_class).to have_graphql_fields(:head_sha, :base_sha, :start_sha).only }
- it { expect(described_class.fields['headSha'].type).to be_non_null }
- it { expect(described_class.fields['baseSha'].type).not_to be_non_null }
- it { expect(described_class.fields['startSha'].type).to be_non_null }
+ specify { expect(described_class.fields['headSha'].type).to be_non_null }
+ specify { expect(described_class.fields['baseSha'].type).not_to be_non_null }
+ specify { expect(described_class.fields['startSha'].type).to be_non_null }
end
diff --git a/spec/graphql/types/environment_type_spec.rb b/spec/graphql/types/environment_type_spec.rb
index 24a8bddfa6a..0e5cbac05df 100644
--- a/spec/graphql/types/environment_type_spec.rb
+++ b/spec/graphql/types/environment_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['Environment'] do
- it { expect(described_class.graphql_name).to eq('Environment') }
+ specify { expect(described_class.graphql_name).to eq('Environment') }
it 'has the expected fields' do
expected_fields = %w[
@@ -13,5 +13,5 @@ describe GitlabSchema.types['Environment'] do
expect(described_class).to have_graphql_fields(*expected_fields)
end
- it { expect(described_class).to require_graphql_authorizations(:read_environment) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_environment) }
end
diff --git a/spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb b/spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb
index 44652f831b5..0a094e9e188 100644
--- a/spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb
+++ b/spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
describe GitlabSchema.types['SentryDetailedError'] do
- it { expect(described_class.graphql_name).to eq('SentryDetailedError') }
+ specify { expect(described_class.graphql_name).to eq('SentryDetailedError') }
- it { expect(described_class).to require_graphql_authorizations(:read_sentry_issue) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_sentry_issue) }
it 'exposes the expected fields' do
expected_fields = %i[
diff --git a/spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb b/spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb
index 20ec31391d8..793da2db960 100644
--- a/spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb
+++ b/spec/graphql/types/error_tracking/sentry_error_collection_type_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
describe GitlabSchema.types['SentryErrorCollection'] do
- it { expect(described_class.graphql_name).to eq('SentryErrorCollection') }
+ specify { expect(described_class.graphql_name).to eq('SentryErrorCollection') }
- it { expect(described_class).to require_graphql_authorizations(:read_sentry_issue) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_sentry_issue) }
it 'exposes the expected fields' do
expected_fields = %i[
diff --git a/spec/graphql/types/error_tracking/sentry_error_stack_trace_entry_type_spec.rb b/spec/graphql/types/error_tracking/sentry_error_stack_trace_entry_type_spec.rb
index 05cc2ca7612..b65398fccc9 100644
--- a/spec/graphql/types/error_tracking/sentry_error_stack_trace_entry_type_spec.rb
+++ b/spec/graphql/types/error_tracking/sentry_error_stack_trace_entry_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['SentryErrorStackTraceEntry'] do
- it { expect(described_class.graphql_name).to eq('SentryErrorStackTraceEntry') }
+ specify { expect(described_class.graphql_name).to eq('SentryErrorStackTraceEntry') }
it 'exposes the expected fields' do
expected_fields = %i[
diff --git a/spec/graphql/types/error_tracking/sentry_error_stack_trace_type_spec.rb b/spec/graphql/types/error_tracking/sentry_error_stack_trace_type_spec.rb
index 2a422228f72..2cec8865764 100644
--- a/spec/graphql/types/error_tracking/sentry_error_stack_trace_type_spec.rb
+++ b/spec/graphql/types/error_tracking/sentry_error_stack_trace_type_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
describe GitlabSchema.types['SentryErrorStackTrace'] do
- it { expect(described_class.graphql_name).to eq('SentryErrorStackTrace') }
+ specify { expect(described_class.graphql_name).to eq('SentryErrorStackTrace') }
- it { expect(described_class).to require_graphql_authorizations(:read_sentry_issue) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_sentry_issue) }
it 'exposes the expected fields' do
expected_fields = %i[
diff --git a/spec/graphql/types/error_tracking/sentry_error_type_spec.rb b/spec/graphql/types/error_tracking/sentry_error_type_spec.rb
index 4676d91ef9c..f8cc801e35e 100644
--- a/spec/graphql/types/error_tracking/sentry_error_type_spec.rb
+++ b/spec/graphql/types/error_tracking/sentry_error_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['SentryError'] do
- it { expect(described_class.graphql_name).to eq('SentryError') }
+ specify { expect(described_class.graphql_name).to eq('SentryError') }
it 'exposes the expected fields' do
expected_fields = %i[
diff --git a/spec/graphql/types/grafana_integration_type_spec.rb b/spec/graphql/types/grafana_integration_type_spec.rb
index ac26911acbf..429b5bdffe6 100644
--- a/spec/graphql/types/grafana_integration_type_spec.rb
+++ b/spec/graphql/types/grafana_integration_type_spec.rb
@@ -14,9 +14,9 @@ describe GitlabSchema.types['GrafanaIntegration'] do
]
end
- it { expect(described_class.graphql_name).to eq('GrafanaIntegration') }
+ specify { expect(described_class.graphql_name).to eq('GrafanaIntegration') }
- it { expect(described_class).to require_graphql_authorizations(:admin_operations) }
+ specify { expect(described_class).to require_graphql_authorizations(:admin_operations) }
- it { expect(described_class).to have_graphql_fields(*expected_fields) }
+ specify { expect(described_class).to have_graphql_fields(*expected_fields) }
end
diff --git a/spec/graphql/types/group_type_spec.rb b/spec/graphql/types/group_type_spec.rb
index 532f1a4b53d..a834a9038db 100644
--- a/spec/graphql/types/group_type_spec.rb
+++ b/spec/graphql/types/group_type_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
describe GitlabSchema.types['Group'] do
- it { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Group) }
+ specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Group) }
- it { expect(described_class.graphql_name).to eq('Group') }
+ specify { expect(described_class.graphql_name).to eq('Group') }
- it { expect(described_class).to require_graphql_authorizations(:read_group) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_group) }
it 'has the expected fields' do
expected_fields = %w[
diff --git a/spec/graphql/types/issuable_sort_enum_spec.rb b/spec/graphql/types/issuable_sort_enum_spec.rb
new file mode 100644
index 00000000000..35c42d8194c
--- /dev/null
+++ b/spec/graphql/types/issuable_sort_enum_spec.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe Types::IssuableSortEnum do
+ specify { expect(described_class.graphql_name).to eq('IssuableSort') }
+
+ it 'exposes all the existing issuable sort values' do
+ expect(described_class.values.keys).to include(
+ *%w[PRIORITY_ASC PRIORITY_DESC
+ LABEL_PRIORITY_ASC LABEL_PRIORITY_DESC
+ MILESTONE_DUE_ASC MILESTONE_DUE_DESC]
+ )
+ end
+end
diff --git a/spec/graphql/types/issuable_state_enum_spec.rb b/spec/graphql/types/issuable_state_enum_spec.rb
index 65a80fa4176..f974ed5f5fb 100644
--- a/spec/graphql/types/issuable_state_enum_spec.rb
+++ b/spec/graphql/types/issuable_state_enum_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['IssuableState'] do
- it { expect(described_class.graphql_name).to eq('IssuableState') }
+ specify { expect(described_class.graphql_name).to eq('IssuableState') }
it_behaves_like 'issuable state'
end
diff --git a/spec/graphql/types/issue_sort_enum_spec.rb b/spec/graphql/types/issue_sort_enum_spec.rb
index 1b6aa6d6069..c496b897cdb 100644
--- a/spec/graphql/types/issue_sort_enum_spec.rb
+++ b/spec/graphql/types/issue_sort_enum_spec.rb
@@ -3,11 +3,13 @@
require 'spec_helper'
describe GitlabSchema.types['IssueSort'] do
- it { expect(described_class.graphql_name).to eq('IssueSort') }
+ specify { expect(described_class.graphql_name).to eq('IssueSort') }
it_behaves_like 'common sort values'
it 'exposes all the existing issue sort values' do
- expect(described_class.values.keys).to include(*%w[DUE_DATE_ASC DUE_DATE_DESC RELATIVE_POSITION_ASC])
+ expect(described_class.values.keys).to include(
+ *%w[DUE_DATE_ASC DUE_DATE_DESC RELATIVE_POSITION_ASC]
+ )
end
end
diff --git a/spec/graphql/types/issue_state_enum_spec.rb b/spec/graphql/types/issue_state_enum_spec.rb
index de19e6fc505..a18c5f5d317 100644
--- a/spec/graphql/types/issue_state_enum_spec.rb
+++ b/spec/graphql/types/issue_state_enum_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['IssueState'] do
- it { expect(described_class.graphql_name).to eq('IssueState') }
+ specify { expect(described_class.graphql_name).to eq('IssueState') }
it_behaves_like 'issuable state'
end
diff --git a/spec/graphql/types/issue_type_spec.rb b/spec/graphql/types/issue_type_spec.rb
index ebe48c17c11..a8f7edcfe8e 100644
--- a/spec/graphql/types/issue_type_spec.rb
+++ b/spec/graphql/types/issue_type_spec.rb
@@ -3,18 +3,19 @@
require 'spec_helper'
describe GitlabSchema.types['Issue'] do
- it { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Issue) }
+ specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Issue) }
- it { expect(described_class.graphql_name).to eq('Issue') }
+ specify { expect(described_class.graphql_name).to eq('Issue') }
- it { expect(described_class).to require_graphql_authorizations(:read_issue) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_issue) }
- it { expect(described_class.interfaces).to include(Types::Notes::NoteableType) }
+ specify { expect(described_class.interfaces).to include(Types::Notes::NoteableType) }
it 'has specific fields' do
fields = %i[iid title description state reference author assignees participants labels milestone due_date
confidential discussion_locked upvotes downvotes user_notes_count web_path web_url relative_position
- subscribed time_estimate total_time_spent closed_at created_at updated_at task_completion_status]
+ subscribed time_estimate total_time_spent closed_at created_at updated_at task_completion_status
+ designs design_collection]
fields.each do |field_name|
expect(described_class).to have_graphql_field(field_name)
diff --git a/spec/graphql/types/jira_import_type_spec.rb b/spec/graphql/types/jira_import_type_spec.rb
index 8448a120682..ac1aa672e30 100644
--- a/spec/graphql/types/jira_import_type_spec.rb
+++ b/spec/graphql/types/jira_import_type_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
describe GitlabSchema.types['JiraImport'] do
- it { expect(described_class.graphql_name).to eq('JiraImport') }
+ specify { expect(described_class.graphql_name).to eq('JiraImport') }
it 'has the expected fields' do
- expect(described_class).to have_graphql_fields(:jira_project_key, :scheduled_at, :scheduled_by)
+ expect(described_class).to have_graphql_fields(:jira_project_key, :createdAt, :scheduled_at, :scheduled_by)
end
end
diff --git a/spec/graphql/types/label_type_spec.rb b/spec/graphql/types/label_type_spec.rb
index 71b86d9b528..026c63906ef 100644
--- a/spec/graphql/types/label_type_spec.rb
+++ b/spec/graphql/types/label_type_spec.rb
@@ -8,5 +8,5 @@ describe GitlabSchema.types['Label'] do
expect(described_class).to have_graphql_fields(*expected_fields)
end
- it { expect(described_class).to require_graphql_authorizations(:read_label) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_label) }
end
diff --git a/spec/graphql/types/merge_request_state_enum_spec.rb b/spec/graphql/types/merge_request_state_enum_spec.rb
index 626e33b18d3..2abc7b298b1 100644
--- a/spec/graphql/types/merge_request_state_enum_spec.rb
+++ b/spec/graphql/types/merge_request_state_enum_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['MergeRequestState'] do
- it { expect(described_class.graphql_name).to eq('MergeRequestState') }
+ specify { expect(described_class.graphql_name).to eq('MergeRequestState') }
it_behaves_like 'issuable state'
diff --git a/spec/graphql/types/merge_request_type_spec.rb b/spec/graphql/types/merge_request_type_spec.rb
index 0c83ebd3de9..e7ab2100084 100644
--- a/spec/graphql/types/merge_request_type_spec.rb
+++ b/spec/graphql/types/merge_request_type_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
describe GitlabSchema.types['MergeRequest'] do
- it { expect(described_class).to expose_permissions_using(Types::PermissionTypes::MergeRequest) }
+ specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::MergeRequest) }
- it { expect(described_class).to require_graphql_authorizations(:read_merge_request) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_merge_request) }
- it { expect(described_class.interfaces).to include(Types::Notes::NoteableType) }
+ specify { expect(described_class.interfaces).to include(Types::Notes::NoteableType) }
it 'has the expected fields' do
expected_fields = %w[
diff --git a/spec/graphql/types/metadata_type_spec.rb b/spec/graphql/types/metadata_type_spec.rb
index c8270a8c2f5..75369ec9c3c 100644
--- a/spec/graphql/types/metadata_type_spec.rb
+++ b/spec/graphql/types/metadata_type_spec.rb
@@ -3,6 +3,6 @@
require 'spec_helper'
describe GitlabSchema.types['Metadata'] do
- it { expect(described_class.graphql_name).to eq('Metadata') }
- it { expect(described_class).to require_graphql_authorizations(:read_instance_metadata) }
+ specify { expect(described_class.graphql_name).to eq('Metadata') }
+ specify { expect(described_class).to require_graphql_authorizations(:read_instance_metadata) }
end
diff --git a/spec/graphql/types/metrics/dashboard_type_spec.rb b/spec/graphql/types/metrics/dashboard_type_spec.rb
index 76f2b4b8935..81219c596a7 100644
--- a/spec/graphql/types/metrics/dashboard_type_spec.rb
+++ b/spec/graphql/types/metrics/dashboard_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['MetricsDashboard'] do
- it { expect(described_class.graphql_name).to eq('MetricsDashboard') }
+ specify { expect(described_class.graphql_name).to eq('MetricsDashboard') }
it 'has the expected fields' do
expected_fields = %w[
diff --git a/spec/graphql/types/metrics/dashboards/annotation_type_spec.rb b/spec/graphql/types/metrics/dashboards/annotation_type_spec.rb
index 2956a2512eb..dbb8b04dbd7 100644
--- a/spec/graphql/types/metrics/dashboards/annotation_type_spec.rb
+++ b/spec/graphql/types/metrics/dashboards/annotation_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['MetricsDashboardAnnotation'] do
- it { expect(described_class.graphql_name).to eq('MetricsDashboardAnnotation') }
+ specify { expect(described_class.graphql_name).to eq('MetricsDashboardAnnotation') }
it 'has the expected fields' do
expected_fields = %w[
@@ -13,5 +13,5 @@ describe GitlabSchema.types['MetricsDashboardAnnotation'] do
expect(described_class).to have_graphql_fields(*expected_fields)
end
- it { expect(described_class).to require_graphql_authorizations(:read_metrics_dashboard_annotation) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_metrics_dashboard_annotation) }
end
diff --git a/spec/graphql/types/milestone_type_spec.rb b/spec/graphql/types/milestone_type_spec.rb
index f7ee79eae9f..4c3d9f50a64 100644
--- a/spec/graphql/types/milestone_type_spec.rb
+++ b/spec/graphql/types/milestone_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['Milestone'] do
- it { expect(described_class.graphql_name).to eq('Milestone') }
+ specify { expect(described_class.graphql_name).to eq('Milestone') }
- it { expect(described_class).to require_graphql_authorizations(:read_milestone) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_milestone) }
end
diff --git a/spec/graphql/types/namespace_type_spec.rb b/spec/graphql/types/namespace_type_spec.rb
index 6c2ba70cf4c..741698021e7 100644
--- a/spec/graphql/types/namespace_type_spec.rb
+++ b/spec/graphql/types/namespace_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['Namespace'] do
- it { expect(described_class.graphql_name).to eq('Namespace') }
+ specify { expect(described_class.graphql_name).to eq('Namespace') }
it 'has the expected fields' do
expected_fields = %w[
@@ -14,5 +14,5 @@ describe GitlabSchema.types['Namespace'] do
expect(described_class).to have_graphql_fields(*expected_fields)
end
- it { expect(described_class).to require_graphql_authorizations(:read_namespace) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_namespace) }
end
diff --git a/spec/graphql/types/notes/discussion_type_spec.rb b/spec/graphql/types/notes/discussion_type_spec.rb
index 804785ba67d..44774594d17 100644
--- a/spec/graphql/types/notes/discussion_type_spec.rb
+++ b/spec/graphql/types/notes/discussion_type_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
describe GitlabSchema.types['Discussion'] do
- it { expect(described_class).to have_graphql_fields(:id, :created_at, :notes, :reply_id) }
+ specify { expect(described_class).to have_graphql_fields(:id, :created_at, :notes, :reply_id) }
- it { expect(described_class).to require_graphql_authorizations(:read_note) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_note) }
end
diff --git a/spec/graphql/types/notes/note_type_spec.rb b/spec/graphql/types/notes/note_type_spec.rb
index 8cf84cd8dfd..019f742ee77 100644
--- a/spec/graphql/types/notes/note_type_spec.rb
+++ b/spec/graphql/types/notes/note_type_spec.rb
@@ -10,6 +10,6 @@ describe GitlabSchema.types['Note'] do
expect(described_class).to have_graphql_fields(*expected_fields)
end
- it { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Note) }
- it { expect(described_class).to require_graphql_authorizations(:read_note) }
+ specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Note) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_note) }
end
diff --git a/spec/graphql/types/notes/noteable_type_spec.rb b/spec/graphql/types/notes/noteable_type_spec.rb
index a4259e160e0..4a81f45bd4e 100644
--- a/spec/graphql/types/notes/noteable_type_spec.rb
+++ b/spec/graphql/types/notes/noteable_type_spec.rb
@@ -2,12 +2,13 @@
require 'spec_helper'
describe Types::Notes::NoteableType do
- it { expect(described_class).to have_graphql_fields(:notes, :discussions) }
+ specify { expect(described_class).to have_graphql_fields(:notes, :discussions) }
describe ".resolve_type" do
it 'knows the correct type for objects' do
expect(described_class.resolve_type(build(:issue), {})).to eq(Types::IssueType)
expect(described_class.resolve_type(build(:merge_request), {})).to eq(Types::MergeRequestType)
+ expect(described_class.resolve_type(build(:design), {})).to eq(Types::DesignManagement::DesignType)
end
end
end
diff --git a/spec/graphql/types/permission_types/issue_spec.rb b/spec/graphql/types/permission_types/issue_spec.rb
index a94bc6b780e..a7a3dd00f11 100644
--- a/spec/graphql/types/permission_types/issue_spec.rb
+++ b/spec/graphql/types/permission_types/issue_spec.rb
@@ -5,8 +5,9 @@ require 'spec_helper'
describe Types::PermissionTypes::Issue do
it do
expected_permissions = [
- :read_issue, :admin_issue, :update_issue,
- :create_note, :reopen_issue
+ :read_issue, :admin_issue, :update_issue, :reopen_issue,
+ :read_design, :create_design, :destroy_design,
+ :create_note
]
expected_permissions.each do |permission|
diff --git a/spec/graphql/types/permission_types/merge_request_type_spec.rb b/spec/graphql/types/permission_types/merge_request_type_spec.rb
index 572b4ac42d0..7e9752cdc46 100644
--- a/spec/graphql/types/permission_types/merge_request_type_spec.rb
+++ b/spec/graphql/types/permission_types/merge_request_type_spec.rb
@@ -3,5 +3,5 @@
require 'spec_helper'
describe Types::MergeRequestType do
- it { expect(described_class).to expose_permissions_using(Types::PermissionTypes::MergeRequest) }
+ specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::MergeRequest) }
end
diff --git a/spec/graphql/types/permission_types/project_spec.rb b/spec/graphql/types/permission_types/project_spec.rb
index 56c4c2de4df..2789464d29c 100644
--- a/spec/graphql/types/permission_types/project_spec.rb
+++ b/spec/graphql/types/permission_types/project_spec.rb
@@ -13,7 +13,7 @@ describe Types::PermissionTypes::Project do
:create_merge_request_from, :create_wiki, :push_code, :create_deployment, :push_to_delete_protected_branch,
:admin_wiki, :admin_project, :update_pages, :admin_remote_mirror, :create_label,
:update_wiki, :destroy_wiki, :create_pages, :destroy_pages, :read_pages_content,
- :read_merge_request
+ :read_merge_request, :read_design, :create_design, :destroy_design
]
expected_permissions.each do |permission|
diff --git a/spec/graphql/types/project_type_spec.rb b/spec/graphql/types/project_type_spec.rb
index 6ea852190c9..6368f743720 100644
--- a/spec/graphql/types/project_type_spec.rb
+++ b/spec/graphql/types/project_type_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
describe GitlabSchema.types['Project'] do
- it { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Project) }
+ specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::Project) }
- it { expect(described_class.graphql_name).to eq('Project') }
+ specify { expect(described_class.graphql_name).to eq('Project') }
- it { expect(described_class).to require_graphql_authorizations(:read_project) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_project) }
it 'has the expected fields' do
expected_fields = %w[
@@ -24,7 +24,8 @@ describe GitlabSchema.types['Project'] do
namespace group statistics repository merge_requests merge_request issues
issue pipelines removeSourceBranchAfterMerge sentryDetailedError snippets
grafanaIntegration autocloseReferencedIssues suggestion_commit_message environments
- boards jira_import_status jira_imports services
+ boards jira_import_status jira_imports services releases release
+ alert_management_alerts alert_management_alert alert_management_alert_status_counts
]
expect(described_class).to include_graphql_fields(*expected_fields)
@@ -96,4 +97,18 @@ describe GitlabSchema.types['Project'] do
it { is_expected.to have_graphql_type(Types::Projects::ServiceType.connection_type) }
end
+
+ describe 'releases field' do
+ subject { described_class.fields['release'] }
+
+ it { is_expected.to have_graphql_type(Types::ReleaseType) }
+ it { is_expected.to have_graphql_resolver(Resolvers::ReleaseResolver) }
+ end
+
+ describe 'release field' do
+ subject { described_class.fields['releases'] }
+
+ it { is_expected.to have_graphql_type(Types::ReleaseType.connection_type) }
+ it { is_expected.to have_graphql_resolver(Resolvers::ReleasesResolver) }
+ end
end
diff --git a/spec/graphql/types/projects/base_service_type_spec.rb b/spec/graphql/types/projects/base_service_type_spec.rb
index bda6022bf79..4fcb9fe1a73 100644
--- a/spec/graphql/types/projects/base_service_type_spec.rb
+++ b/spec/graphql/types/projects/base_service_type_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
describe GitlabSchema.types['BaseService'] do
- it { expect(described_class.graphql_name).to eq('BaseService') }
+ specify { expect(described_class.graphql_name).to eq('BaseService') }
it 'has basic expected fields' do
expect(described_class).to have_graphql_fields(:type, :active)
end
- it { expect(described_class).to require_graphql_authorizations(:admin_project) }
+ specify { expect(described_class).to require_graphql_authorizations(:admin_project) }
end
diff --git a/spec/graphql/types/projects/jira_service_type_spec.rb b/spec/graphql/types/projects/jira_service_type_spec.rb
index 7f8fa6538e9..91d7e4586cb 100644
--- a/spec/graphql/types/projects/jira_service_type_spec.rb
+++ b/spec/graphql/types/projects/jira_service_type_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
describe GitlabSchema.types['JiraService'] do
- it { expect(described_class.graphql_name).to eq('JiraService') }
+ specify { expect(described_class.graphql_name).to eq('JiraService') }
it 'has basic expected fields' do
expect(described_class).to have_graphql_fields(:type, :active)
end
- it { expect(described_class).to require_graphql_authorizations(:admin_project) }
+ specify { expect(described_class).to require_graphql_authorizations(:admin_project) }
end
diff --git a/spec/graphql/types/projects/service_type_spec.rb b/spec/graphql/types/projects/service_type_spec.rb
index ad30a4008bc..f6758d17d18 100644
--- a/spec/graphql/types/projects/service_type_spec.rb
+++ b/spec/graphql/types/projects/service_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::Projects::ServiceType do
- it { expect(described_class).to have_graphql_fields(:type, :active) }
+ specify { expect(described_class).to have_graphql_fields(:type, :active) }
describe ".resolve_type" do
it 'resolves the corresponding type for objects' do
diff --git a/spec/graphql/types/projects/services_enum_spec.rb b/spec/graphql/types/projects/services_enum_spec.rb
index aac4aae4f69..91e398e8d81 100644
--- a/spec/graphql/types/projects/services_enum_spec.rb
+++ b/spec/graphql/types/projects/services_enum_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe GitlabSchema.types['ServiceType'] do
- it { expect(described_class.graphql_name).to eq('ServiceType') }
+ specify { expect(described_class.graphql_name).to eq('ServiceType') }
it 'exposes all the existing project services' do
expect(described_class.values.keys).to match_array(available_services_enum)
diff --git a/spec/graphql/types/query_type_spec.rb b/spec/graphql/types/query_type_spec.rb
index ab210f2e918..1f269a80d00 100644
--- a/spec/graphql/types/query_type_spec.rb
+++ b/spec/graphql/types/query_type_spec.rb
@@ -8,7 +8,7 @@ describe GitlabSchema.types['Query'] do
end
it 'has the expected fields' do
- expected_fields = %i[project namespace group echo metadata current_user snippets]
+ expected_fields = %i[project namespace group echo metadata current_user snippets design_management]
expect(described_class).to have_graphql_fields(*expected_fields).at_least
end
diff --git a/spec/graphql/types/release_type_spec.rb b/spec/graphql/types/release_type_spec.rb
new file mode 100644
index 00000000000..d22a0b4f0fa
--- /dev/null
+++ b/spec/graphql/types/release_type_spec.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe GitlabSchema.types['Release'] do
+ it { expect(described_class).to require_graphql_authorizations(:read_release) }
+
+ it 'has the expected fields' do
+ expected_fields = %w[
+ tag_name tag_path
+ description description_html
+ name milestones author commit
+ created_at released_at
+ ]
+
+ expect(described_class).to include_graphql_fields(*expected_fields)
+ end
+
+ describe 'milestones field' do
+ subject { described_class.fields['milestones'] }
+
+ it { is_expected.to have_graphql_type(Types::MilestoneType.connection_type) }
+ end
+
+ describe 'author field' do
+ subject { described_class.fields['author'] }
+
+ it { is_expected.to have_graphql_type(Types::UserType) }
+ end
+
+ describe 'commit field' do
+ subject { described_class.fields['commit'] }
+
+ it { is_expected.to have_graphql_type(Types::CommitType) }
+ it { is_expected.to require_graphql_authorizations(:reporter_access) }
+ end
+end
diff --git a/spec/graphql/types/repository_type_spec.rb b/spec/graphql/types/repository_type_spec.rb
index f746e75b574..fb52839c712 100644
--- a/spec/graphql/types/repository_type_spec.rb
+++ b/spec/graphql/types/repository_type_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
describe GitlabSchema.types['Repository'] do
- it { expect(described_class.graphql_name).to eq('Repository') }
+ specify { expect(described_class.graphql_name).to eq('Repository') }
- it { expect(described_class).to require_graphql_authorizations(:download_code) }
+ specify { expect(described_class).to require_graphql_authorizations(:download_code) }
- it { expect(described_class).to have_graphql_field(:root_ref) }
+ specify { expect(described_class).to have_graphql_field(:root_ref) }
- it { expect(described_class).to have_graphql_field(:tree) }
+ specify { expect(described_class).to have_graphql_field(:tree) }
end
diff --git a/spec/graphql/types/root_storage_statistics_type_spec.rb b/spec/graphql/types/root_storage_statistics_type_spec.rb
index b796b974b82..ebaa5a18623 100644
--- a/spec/graphql/types/root_storage_statistics_type_spec.rb
+++ b/spec/graphql/types/root_storage_statistics_type_spec.rb
@@ -3,12 +3,12 @@
require 'spec_helper'
describe GitlabSchema.types['RootStorageStatistics'] do
- it { expect(described_class.graphql_name).to eq('RootStorageStatistics') }
+ specify { expect(described_class.graphql_name).to eq('RootStorageStatistics') }
it 'has all the required fields' do
expect(described_class).to have_graphql_fields(:storage_size, :repository_size, :lfs_objects_size,
:build_artifacts_size, :packages_size, :wiki_size)
end
- it { expect(described_class).to require_graphql_authorizations(:read_statistics) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_statistics) }
end
diff --git a/spec/graphql/types/snippet_type_spec.rb b/spec/graphql/types/snippet_type_spec.rb
index 6e580711fda..adc13d4d651 100644
--- a/spec/graphql/types/snippet_type_spec.rb
+++ b/spec/graphql/types/snippet_type_spec.rb
@@ -17,7 +17,7 @@ describe GitlabSchema.types['Snippet'] do
end
describe 'authorizations' do
- it { expect(described_class).to require_graphql_authorizations(:read_snippet) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_snippet) }
end
shared_examples 'response without repository URLs' do
@@ -35,14 +35,6 @@ describe GitlabSchema.types['Snippet'] do
expect(response['sshUrlToRepo']).to eq(snippet.ssh_url_to_repo)
expect(response['httpUrlToRepo']).to eq(snippet.http_url_to_repo)
end
-
- context 'when version_snippets feature is disabled' do
- before do
- stub_feature_flags(version_snippets: false)
- end
-
- it_behaves_like 'response without repository URLs'
- end
end
end
diff --git a/spec/graphql/types/snippets/blob_type_spec.rb b/spec/graphql/types/snippets/blob_type_spec.rb
index da36ab80f44..fb8c6896732 100644
--- a/spec/graphql/types/snippets/blob_type_spec.rb
+++ b/spec/graphql/types/snippets/blob_type_spec.rb
@@ -6,8 +6,22 @@ describe GitlabSchema.types['SnippetBlob'] do
it 'has the correct fields' do
expected_fields = [:rich_data, :plain_data,
:raw_path, :size, :binary, :name, :path,
- :simple_viewer, :rich_viewer, :mode]
+ :simple_viewer, :rich_viewer, :mode, :external_storage,
+ :rendered_as_text]
expect(described_class).to have_graphql_fields(*expected_fields)
end
+
+ specify { expect(described_class.fields['richData'].type).not_to be_non_null }
+ specify { expect(described_class.fields['plainData'].type).not_to be_non_null }
+ specify { expect(described_class.fields['rawPath'].type).to be_non_null }
+ specify { expect(described_class.fields['size'].type).to be_non_null }
+ specify { expect(described_class.fields['binary'].type).to be_non_null }
+ specify { expect(described_class.fields['name'].type).not_to be_non_null }
+ specify { expect(described_class.fields['path'].type).not_to be_non_null }
+ specify { expect(described_class.fields['simpleViewer'].type).to be_non_null }
+ specify { expect(described_class.fields['richViewer'].type).not_to be_non_null }
+ specify { expect(described_class.fields['mode'].type).not_to be_non_null }
+ specify { expect(described_class.fields['externalStorage'].type).not_to be_non_null }
+ specify { expect(described_class.fields['renderedAsText'].type).to be_non_null }
end
diff --git a/spec/graphql/types/snippets/blob_viewer_type_spec.rb b/spec/graphql/types/snippets/blob_viewer_type_spec.rb
index a51d09813ab..841e22451db 100644
--- a/spec/graphql/types/snippets/blob_viewer_type_spec.rb
+++ b/spec/graphql/types/snippets/blob_viewer_type_spec.rb
@@ -3,10 +3,91 @@
require 'spec_helper'
describe GitlabSchema.types['SnippetBlobViewer'] do
+ let_it_be(:snippet) { create(:personal_snippet, :repository) }
+ let_it_be(:blob) { snippet.repository.blob_at('HEAD', 'files/images/6049019_460s.jpg') }
+
it 'has the correct fields' do
expected_fields = [:type, :load_async, :too_large, :collapsed,
:render_error, :file_type, :loading_partial_name]
expect(described_class).to have_graphql_fields(*expected_fields)
end
+
+ it { expect(described_class.fields['type'].type).to be_non_null }
+ it { expect(described_class.fields['loadAsync'].type).to be_non_null }
+ it { expect(described_class.fields['collapsed'].type).to be_non_null }
+ it { expect(described_class.fields['tooLarge'].type).to be_non_null }
+ it { expect(described_class.fields['renderError'].type).not_to be_non_null }
+ it { expect(described_class.fields['fileType'].type).to be_non_null }
+ it { expect(described_class.fields['loadingPartialName'].type).to be_non_null }
+
+ shared_examples 'nil field converted to false' do
+ subject { GitlabSchema.execute(query, context: { current_user: snippet.author }).as_json }
+
+ before do
+ allow_next_instance_of(SnippetPresenter) do |instance|
+ allow(instance).to receive(:blob).and_return(blob)
+ end
+ end
+
+ it 'returns false' do
+ snippet_blob = subject.dig('data', 'snippets', 'edges')[0].dig('node', 'blob')
+
+ expect(snippet_blob['path']).to eq blob.path
+ expect(blob_attribute).to be_nil
+ expect(snippet_blob['simpleViewer'][attribute]).to eq false
+ end
+ end
+
+ describe 'collapsed' do
+ it_behaves_like 'nil field converted to false' do
+ let(:query) do
+ %(
+ query {
+ snippets(ids:"#{snippet.to_global_id}"){
+ edges {
+ node {
+ blob {
+ path
+ simpleViewer {
+ collapsed
+ }
+ }
+ }
+ }
+ }
+ }
+ )
+ end
+
+ let(:attribute) { 'collapsed' }
+ let(:blob_attribute) { blob.simple_viewer.collapsed? }
+ end
+ end
+
+ describe 'tooLarge' do
+ it_behaves_like 'nil field converted to false' do
+ let(:query) do
+ %(
+ query {
+ snippets(ids:"#{snippet.to_global_id}"){
+ edges {
+ node {
+ blob {
+ path
+ simpleViewer {
+ tooLarge
+ }
+ }
+ }
+ }
+ }
+ }
+ )
+ end
+
+ let(:attribute) { 'tooLarge' }
+ let(:blob_attribute) { blob.simple_viewer.too_large? }
+ end
+ end
end
diff --git a/spec/graphql/types/time_type_spec.rb b/spec/graphql/types/time_type_spec.rb
index 88a535ed3bb..3c6e191e2fb 100644
--- a/spec/graphql/types/time_type_spec.rb
+++ b/spec/graphql/types/time_type_spec.rb
@@ -6,7 +6,7 @@ describe GitlabSchema.types['Time'] do
let(:iso) { "2018-06-04T15:23:50+02:00" }
let(:time) { Time.parse(iso) }
- it { expect(described_class.graphql_name).to eq('Time') }
+ specify { expect(described_class.graphql_name).to eq('Time') }
it 'coerces Time object into ISO 8601' do
expect(described_class.coerce_isolated_result(time)).to eq(iso)
diff --git a/spec/graphql/types/todo_type_spec.rb b/spec/graphql/types/todo_type_spec.rb
index 59118259d09..87a5405f0e2 100644
--- a/spec/graphql/types/todo_type_spec.rb
+++ b/spec/graphql/types/todo_type_spec.rb
@@ -9,5 +9,5 @@ describe GitlabSchema.types['Todo'] do
expect(described_class).to have_graphql_fields(*expected_fields)
end
- it { expect(described_class).to require_graphql_authorizations(:read_todo) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_todo) }
end
diff --git a/spec/graphql/types/tree/blob_type_spec.rb b/spec/graphql/types/tree/blob_type_spec.rb
index 516c862b9c6..547a03b5edf 100644
--- a/spec/graphql/types/tree/blob_type_spec.rb
+++ b/spec/graphql/types/tree/blob_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::Tree::BlobType do
- it { expect(described_class.graphql_name).to eq('Blob') }
+ specify { expect(described_class.graphql_name).to eq('Blob') }
- it { expect(described_class).to have_graphql_fields(:id, :sha, :name, :type, :path, :flat_path, :web_url, :lfs_oid) }
+ specify { expect(described_class).to have_graphql_fields(:id, :sha, :name, :type, :path, :flat_path, :web_url, :lfs_oid) }
end
diff --git a/spec/graphql/types/tree/submodule_type_spec.rb b/spec/graphql/types/tree/submodule_type_spec.rb
index 81f7ad825a1..b5cfe8eb812 100644
--- a/spec/graphql/types/tree/submodule_type_spec.rb
+++ b/spec/graphql/types/tree/submodule_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::Tree::SubmoduleType do
- it { expect(described_class.graphql_name).to eq('Submodule') }
+ specify { expect(described_class.graphql_name).to eq('Submodule') }
- it { expect(described_class).to have_graphql_fields(:id, :sha, :name, :type, :path, :flat_path, :web_url, :tree_url) }
+ specify { expect(described_class).to have_graphql_fields(:id, :sha, :name, :type, :path, :flat_path, :web_url, :tree_url) }
end
diff --git a/spec/graphql/types/tree/tree_entry_type_spec.rb b/spec/graphql/types/tree/tree_entry_type_spec.rb
index 228a4be0949..14826d06645 100644
--- a/spec/graphql/types/tree/tree_entry_type_spec.rb
+++ b/spec/graphql/types/tree/tree_entry_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::Tree::TreeEntryType do
- it { expect(described_class.graphql_name).to eq('TreeEntry') }
+ specify { expect(described_class.graphql_name).to eq('TreeEntry') }
- it { expect(described_class).to have_graphql_fields(:id, :sha, :name, :type, :path, :flat_path, :web_url) }
+ specify { expect(described_class).to have_graphql_fields(:id, :sha, :name, :type, :path, :flat_path, :web_url) }
end
diff --git a/spec/graphql/types/tree/tree_type_spec.rb b/spec/graphql/types/tree/tree_type_spec.rb
index 23779d75600..93faebd3602 100644
--- a/spec/graphql/types/tree/tree_type_spec.rb
+++ b/spec/graphql/types/tree/tree_type_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::Tree::TreeType do
- it { expect(described_class.graphql_name).to eq('Tree') }
+ specify { expect(described_class.graphql_name).to eq('Tree') }
- it { expect(described_class).to have_graphql_fields(:trees, :submodules, :blobs, :last_commit) }
+ specify { expect(described_class).to have_graphql_fields(:trees, :submodules, :blobs, :last_commit) }
end
diff --git a/spec/graphql/types/tree/type_enum_spec.rb b/spec/graphql/types/tree/type_enum_spec.rb
index 4caf9e1c457..dcacd6073f9 100644
--- a/spec/graphql/types/tree/type_enum_spec.rb
+++ b/spec/graphql/types/tree/type_enum_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
describe Types::Tree::TypeEnum do
- it { expect(described_class.graphql_name).to eq('EntryType') }
+ specify { expect(described_class.graphql_name).to eq('EntryType') }
it 'exposes all tree entry types' do
expect(described_class.values.keys).to include(*%w[tree blob commit])
diff --git a/spec/graphql/types/user_type_spec.rb b/spec/graphql/types/user_type_spec.rb
index 8c76ce43e95..cf1e91afb80 100644
--- a/spec/graphql/types/user_type_spec.rb
+++ b/spec/graphql/types/user_type_spec.rb
@@ -3,13 +3,13 @@
require 'spec_helper'
describe GitlabSchema.types['User'] do
- it { expect(described_class.graphql_name).to eq('User') }
+ specify { expect(described_class.graphql_name).to eq('User') }
- it { expect(described_class).to require_graphql_authorizations(:read_user) }
+ specify { expect(described_class).to require_graphql_authorizations(:read_user) }
it 'has the expected fields' do
expected_fields = %w[
- user_permissions snippets name username avatarUrl webUrl todos
+ id user_permissions snippets name username avatarUrl webUrl todos state
]
expect(described_class).to have_graphql_fields(*expected_fields)