From 3b42c97a4a192cf300fdad270bb27b41fb89c96d Mon Sep 17 00:00:00 2001 From: theduke Date: Sat, 24 Jun 2017 13:25:21 +0200 Subject: [PATCH] Add juniper_tests crate with integration tests --- juniper_tests/Cargo.toml | 12 +++++++++ juniper_tests/src/codegen/mod.rs | 46 ++++++++++++++++++++++++++++++++ juniper_tests/src/lib.rs | 4 +++ 3 files changed, 62 insertions(+) create mode 100644 juniper_tests/Cargo.toml create mode 100644 juniper_tests/src/codegen/mod.rs create mode 100644 juniper_tests/src/lib.rs diff --git a/juniper_tests/Cargo.toml b/juniper_tests/Cargo.toml new file mode 100644 index 00000000..23853710 --- /dev/null +++ b/juniper_tests/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "juniper_tests" +version = "0.1.0" + +[dependencies] +juniper = { path = "../juniper" } +juniper_codegen = { path = "../juniper_codegen" } + +[[test]] +name = "integration_tests" +path = "src/lib.rs" +harness = true diff --git a/juniper_tests/src/codegen/mod.rs b/juniper_tests/src/codegen/mod.rs new file mode 100644 index 00000000..4c476b6c --- /dev/null +++ b/juniper_tests/src/codegen/mod.rs @@ -0,0 +1,46 @@ +use std::collections::HashMap; + +use juniper::{self, InputValue, ToInputValue, GraphQLType, FromInputValue}; + +#[derive(GraphQLEnum, Debug, PartialEq)] +#[graphql(name="Some", description="enum descr")] +enum SomeEnum { + Regular, + + #[graphql( + name="FULL", + description="field descr", + deprecated="depr" + )] + Full, +} + +#[test] +fn test_derived_enum() { + // Ensure that rename works. + assert_eq!(SomeEnum::name(), Some("Some")); + + // Ensure validity of meta info. + let mut registry = juniper::Registry::new(HashMap::new()); + let meta = SomeEnum::meta(&mut registry); + + // Test Regular variant. + assert_eq!( + SomeEnum::Regular.to(), + InputValue::String("Regular".into()) + ); + assert_eq!( + FromInputValue::from(&InputValue::String("Regular".into())), + Some(SomeEnum::Regular) + ); + + // Test FULL variant. + assert_eq!( + SomeEnum::Full.to(), + InputValue::String("FULL".into()) + ); + assert_eq!( + FromInputValue::from(&InputValue::String("FULL".into())), + Some(SomeEnum::Full) + ); +} diff --git a/juniper_tests/src/lib.rs b/juniper_tests/src/lib.rs new file mode 100644 index 00000000..3396c71a --- /dev/null +++ b/juniper_tests/src/lib.rs @@ -0,0 +1,4 @@ +#[macro_use] extern crate juniper; +#[macro_use] extern crate juniper_codegen; + +mod codegen;