Skip to content

Allow to pass a block to graphql mutation helper

What does this MR do?

Adds a syntactic sugar for the graphql_mutation method which allows passing a block as a GraphQL query.

Example before

graphql_mutation(:update_alert_status, variables.merge(input),
                 <<~QL
                   clientMutationId
                   errors
                   alert {
                     iid
                     status
                   }
                 QL
)

Example after

graphql_mutation(:update_alert_status, variables.merge(input)) do
  <<~QL
     clientMutationId
     errors
     alert {
       iid
       status
     }
  QL
end

Exception output example

Failure/Error: raise ArgumentError, 'Please pass either `fields` parameter or a block to `#graphql_mutation`, but not both.' if fields.present? && block_given?

ArgumentError:
  Please pass either `fields` parameter or a block to `#graphql_mutation`, but not both.
# ./spec/support/helpers/graphql_helpers.rb:81:in `graphql_mutation'

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • ~~Label as security and @ mention @gitlab-com/gl-security/appsec~~
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Peter Leitzen

Merge request reports