diff options
Diffstat (limited to 'spec/graphql/types/merge_request_type_spec.rb')
-rw-r--r-- | spec/graphql/types/merge_request_type_spec.rb | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/spec/graphql/types/merge_request_type_spec.rb b/spec/graphql/types/merge_request_type_spec.rb index fa33b32c6c8..875a16a79e5 100644 --- a/spec/graphql/types/merge_request_type_spec.rb +++ b/spec/graphql/types/merge_request_type_spec.rb @@ -3,6 +3,8 @@ require 'spec_helper' RSpec.describe GitlabSchema.types['MergeRequest'] do + include GraphqlHelpers + specify { expect(described_class).to expose_permissions_using(Types::PermissionTypes::MergeRequest) } specify { expect(described_class).to require_graphql_authorizations(:read_merge_request) } @@ -19,15 +21,17 @@ RSpec.describe GitlabSchema.types['MergeRequest'] do target_branch work_in_progress draft merge_when_pipeline_succeeds diff_head_sha merge_commit_sha user_notes_count user_discussions_count should_remove_source_branch diff_refs diff_stats diff_stats_summary - force_remove_source_branch merge_status in_progress_merge_commit_sha + force_remove_source_branch + merge_status merge_status_enum + in_progress_merge_commit_sha merge_error allow_collaboration should_be_rebased rebase_commit_sha rebase_in_progress default_merge_commit_message merge_ongoing mergeable_discussions_state web_url source_branch_exists target_branch_exists diverged_from_target_branch upvotes downvotes head_pipeline pipelines task_completion_status milestone assignees reviewers participants subscribed labels discussion_locked time_estimate - total_time_spent reference author merged_at commit_count current_user_todos - conflicts auto_merge_enabled approved_by source_branch_protected + total_time_spent human_time_estimate human_total_time_spent reference author merged_at + commit_count current_user_todos conflicts auto_merge_enabled approved_by source_branch_protected default_merge_commit_message_with_description squash_on_merge available_auto_merge_strategies has_ci mergeable commits_without_merge_commits squash security_auto_fix default_squash_commit_message auto_merge_strategy merge_user @@ -106,4 +110,27 @@ RSpec.describe GitlabSchema.types['MergeRequest'] do execute_query end end + + describe 'merge_status_enum' do + let(:type) { GitlabSchema.types['MergeStatus'] } + + it 'has the type MergeStatus' do + expect(described_class.fields['mergeStatusEnum']).to have_graphql_type(type) + end + + let_it_be(:project) { create(:project, :public) } + + %i[preparing unchecked cannot_be_merged_recheck checking cannot_be_merged_rechecking can_be_merged cannot_be_merged].each do |state| + context "when the the DB value is #{state}" do + let(:merge_request) { create(:merge_request, :unique_branches, source_project: project, merge_status: state.to_s) } + + it 'serializes correctly' do + value = resolve_field(:merge_status_enum, merge_request) + value = type.coerce_isolated_result(value) + + expect(value).to eq(merge_request.public_merge_status.upcase) + end + end + end + end end |