wundergraph 0.1.2

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

#[test]
fn delete_existing() {
    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
      }
    ]
  },
  []
]"###
    );

    let res = execute_query(
        &schema,
        &ctx,
        r#"
mutation DeleteHero {
  DeleteHero(DeleteHero: {id: 5}) {
    count
  }
}
"#,
    );

    assert!(res.is_ok());
    assert_json_snapshot!(
        res.as_json(), @r###"[
  {
    "DeleteHero": {
      "count": 1
    }
  },
  []
]"###
    );

    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
      }
    ]
  },
  []
]"###
    );
}

#[test]
fn delete_non_existing() {
    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
      }
    ]
  },
  []
]"###
    );

    let res = execute_query(
        &schema,
        &ctx,
        r#"
mutation DeleteHero {
  DeleteHero(DeleteHero: {id: 42}) {
    count
  }
}
"#,
    );

    assert!(res.is_ok());
    assert_json_snapshot!(
        res.as_json(), @r###"[
  {
    "DeleteHero": {
      "count": 0
    }
  },
  []
]"###
    );

    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
      }
    ]
  },
  []
]"###
    );
}