Skip to content

Support nested paths in GraphQlTester #457

Closed
@koenpunt

Description

@koenpunt

When testing the response of a nested query it would be practical to perform assertions on a subpath.

To give an example;

graphqlClient.document(query).execute()
  .path("addCartItemOptions.cart.id").isEqualTo(cartGlobalId)
  .path("addCartItemOptions.cartItem.id").isEqualTo(cartItemGlobalId)
  .path("addCartItemOptions.cartItem.options[0].productOption.name").isEqualTo(optionProduct1.name)
  .path("addCartItemOptions.cartItem.options[0].quantity").isEqualTo(1)
  .path("addCartItemOptions.cartItem.options[1].productOption.name").isEqualTo(optionProduct2.name)
  .path("addCartItemOptions.cartItem.options[1].quantity").isEqualTo(2)

This is obviously very verbose, and thus it would like to propose an api where you traverse paths and can perform assertions on a "subpath";

graphqlClient.document(query).execute()
  .path("addCartItemOptions.cart.id").isEqualTo(cartGlobalId)
  .path("addCartItemOptions.cartItem") { sub ->
    sub
      .path("id").isEqualTo(cartItemGlobalId)
      .path("options[0]") {
        it
          .path("productOption.name").isEqualTo(optionProduct1.name)
          .path("quantity").isEqualTo(1)
      }
      .path("options[1].productOption.name").isEqualTo(optionProduct2.name)
      .path("options[1].quantity").isEqualTo(2)
  }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions