Skip to content

Request Matching GraphQLMatcher

Stef Heyenrath edited this page Aug 3, 2023 · 1 revision

GraphQL Schema (GraphQLMatcher)

Can be used to match a GraphQL Query or Mutation using GraphQAL Schema.

C# option

var TestSchema = @"
  input MessageInput {
    content: String
    author: String
  }

  type Message {
    id: ID!
    content: String
    author: String
  }

  type Mutation {
    createMessage(input: MessageInput): Message
    updateMessage(id: ID!, input: MessageInput): Message
  }

  type Query {
   greeting:String
   students:[Student]
   studentById(id:ID!):Student
  }

  type Student {
   id:ID!
   firstName:String
   lastName:String
   fullName:String 
  }";

var server = WireMockServer.Start();
server
    .Given(Request.Create()
        .WithPath("/graphql")
        .UsingPost()
        .WithGraphQLSchema(TestSchema)
    )
    .RespondWith(Response.Create()
        .WithBody("GraphQL is ok")
    );

JSON Mapping option

{
  "Guid": "5a36d1c1-11df-4976-90f9-22cae5dadb38",
  "UpdatedAt": "2023-07-08T17:02:06.1072879Z",
  "Request": {
      "Path": {
          "Matchers": [
              {
                  "Name": "WildcardMatcher",
                  "Pattern": "/graphql",
                  "IgnoreCase": false
              }
          ]
      },
      "Methods": [
          "POST"
      ],
      "Body": {
          "Matcher": {
              "Name": "GraphQLMatcher",
              "Pattern": "\r\n  input MessageInput {\r\n    content: String\r\n    author: String\r\n  }\r\n\r\n  type Message {\r\n    id: ID!\r\n    content: String\r\n    author: String\r\n  }\r\n\r\n  type Mutation {\r\n    createMessage(input: MessageInput): Message\r\n    updateMessage(id: ID!, input: MessageInput): Message\r\n  }\r\n\r\n  type Query {\r\n   greeting:String\r\n   students:[Student]\r\n   studentById(id:ID!):Student\r\n  }\r\n\r\n  type Student {\r\n   id:ID!\r\n   firstName:String\r\n   lastName:String\r\n   fullName:String \r\n  }"
          }
      }
  }
}
Clone this wiki locally