Let’s start with how a mutation looks like in GraphQL, A simple “createEmployer” and response looks below.
To work with Mutation , we need a GraphQL variables, Mutation request. You can also choose to pass the variables(data) along with the mutation request.
But is always better to keep them seperate for simplicity.Let’s start with creating a folder structure.
Now create a file called createEmployerQuery.graphql and add the below code snippet in the file
mutation($employer:EmployerParam ) {
createmployer(employer: $employer) {
id
firstName
lastName
middleName
employmentStatus
}
}
Once you have the Query variable in place , we will add another file called createEmployerVariables.graphql which will contain all the variables we need.
{
"employer": {
"companyName": "foo",
"Region": "sdf",
"Email": "somefmao.com",
"Phone": "1987683433"
}
}
We will now create a feature fill that will combine these two files and run them as once.
Feature: Create Employer
Background:* url 'AuthURL'* path 'token'* form field grant_type = 'password'* form field username = username* form field password = password* form field client_id = appId* form field client_secret = appSecret* form field scope = 'yourScopeURL'* method post* status 200* print responseScenario: Create all employer details Given def query = read('createEmployerQuery.graphql') Given def variables = read('createEmployerVariable.graphql') #And def variables = { name: 'Charmander' } And request { query: '#(query)', variables: '#(variables)' } #And request { query: '#(query)' } When method post * print response Then status 200
To run this we need a runner class.
package employer;
import org.junit.runner.RunWith;
import com.intuit.karate.junit4.Karate;
import com.intuit.karate.KarateOptions;
@RunWith(Karate.class)
@KarateOptions(features = "classpath:employer/createEmployer.feature")
public class EmployerRunner {
}
