Add nesting layer for codegen tests and add test for input_object derive
This commit is contained in:
parent
1312c6a026
commit
03f694fff6
5 changed files with 71 additions and 46 deletions
|
@ -5,6 +5,7 @@ version = "0.1.0"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
juniper = { path = "../juniper" }
|
juniper = { path = "../juniper" }
|
||||||
juniper_codegen = { path = "../juniper_codegen" }
|
juniper_codegen = { path = "../juniper_codegen" }
|
||||||
|
serde_json = { version = "^1.0.2" }
|
||||||
|
|
||||||
[[test]]
|
[[test]]
|
||||||
name = "integration_tests"
|
name = "integration_tests"
|
||||||
|
|
46
juniper_tests/src/codegen/enums.rs
Normal file
46
juniper_tests/src/codegen/enums.rs
Normal file
|
@ -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)
|
||||||
|
);
|
||||||
|
}
|
21
juniper_tests/src/codegen/input_objects.rs
Normal file
21
juniper_tests/src/codegen/input_objects.rs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
use juniper::{self, InputValue, ToInputValue, GraphQLType, FromInputValue};
|
||||||
|
|
||||||
|
#[derive(GraphQLInputObject, Debug, PartialEq)]
|
||||||
|
#[graphql(name="MyInput")]
|
||||||
|
struct Input {
|
||||||
|
regular_field: String,
|
||||||
|
#[graphql(name="haha", default="33")]
|
||||||
|
c: i32,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_derived_input_object() {
|
||||||
|
assert_eq!(Input::name(), Some("MyInput"));
|
||||||
|
|
||||||
|
let obj = Input {
|
||||||
|
regular_field: "a".to_string(),
|
||||||
|
c: 33,
|
||||||
|
};
|
||||||
|
let restored: Input = FromInputValue::from(&obj.to()).unwrap();
|
||||||
|
assert_eq!(obj, restored);
|
||||||
|
}
|
|
@ -1,46 +1,2 @@
|
||||||
use std::collections::HashMap;
|
mod enums;
|
||||||
|
mod input_objects;
|
||||||
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)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#[macro_use] extern crate juniper;
|
#[macro_use] extern crate juniper;
|
||||||
#[macro_use] extern crate juniper_codegen;
|
#[macro_use] extern crate juniper_codegen;
|
||||||
|
#[macro_use] extern crate serde_json;
|
||||||
|
|
||||||
mod codegen;
|
mod codegen;
|
||||||
|
|
Loading…
Reference in a new issue