wundergraph 0.1.2

A GraphQL ORM build on top of diesel
Documentation
use crate::helper::*;
use wundergraph_example::MyContext;

#[test]
fn simple_query_single_field() {
    let (schema, pool) = get_example_schema();
    let ctx = MyContext::new(pool.get().unwrap());

    let res = execute_query(
        &schema,
        &ctx,
        "
{
    Heros {
        heroName
    }
}
",
    );
    assert!(res.is_ok());
    assert_json_snapshot!(
        res.as_json(), @r###"[
  {
    "Heros": [
      {
        "heroName": "Luke Skywalker"
      },
      {
        "heroName": "Darth Vader"
      },
      {
        "heroName": "Han Solo"
      },
      {
        "heroName": "Leia Organa"
      },
      {
        "heroName": "Wilhuff Tarkin"
      }
    ]
  },
  []
]"###
    );
}

#[test]
fn simple_query_multiple_field() {
    let (schema, pool) = get_example_schema();
    let ctx = MyContext::new(pool.get().unwrap());

    let res = execute_query(
        &schema,
        &ctx,
        "
{
    Heros {
        id
        heroName
    }
}
",
    );
    assert!(res.is_ok());
    assert_json_snapshot!(
        res.as_json(), @r###"[
  {
    "Heros": [
      {
        "heroName": "Luke Skywalker",
        "id": 1
      },
      {
        "heroName": "Darth Vader",
        "id": 2
      },
      {
        "heroName": "Han Solo",
        "id": 3
      },
      {
        "heroName": "Leia Organa",
        "id": 4
      },
      {
        "heroName": "Wilhuff Tarkin",
        "id": 5
      }
    ]
  },
  []
]"###
    );
}

#[test]
fn simple_query_nested() {
    let (schema, pool) = get_example_schema();
    let ctx = MyContext::new(pool.get().unwrap());

    let res = execute_query(
        &schema,
        &ctx,
        "
{
    Heros {
        heroName
        home_world {
             name
        }
    }
}
",
    );
    assert!(res.is_ok());
    assert_json_snapshot!(
        res.as_json(), @r###"[
  {
    "Heros": [
      {
        "heroName": "Luke Skywalker",
        "home_world": {
          "name": "Tatooine"
        }
      },
      {
        "heroName": "Darth Vader",
        "home_world": {
          "name": "Tatooine"
        }
      },
      {
        "heroName": "Han Solo",
        "home_world": null
      },
      {
        "heroName": "Leia Organa",
        "home_world": {
          "name": "Alderaan"
        }
      },
      {
        "heroName": "Wilhuff Tarkin",
        "home_world": null
      }
    ]
  },
  []
]"###
    );
}