async-graphql/tests/derive.rs
2020-06-25 13:54:13 -07:00

68 lines
1.8 KiB
Rust

use async_graphql::*;
#[async_std::test]
pub async fn test_derive() {
#[Enum(name = "MyEnum1")]
enum MyEnum {
#[cfg_attr(feature = "bson", item(name = "A1"))]
A,
}
// Infers the name based on Rust name
#[derive(GQLEnum, Eq, Copy, PartialEq, Clone)]
enum MyEnumDerive {
#[cfg_attr(feature = "bson", item(name = "A1"))]
A,
}
// Can be renamed with graphql(name = ..) attribute
#[derive(GQLEnum, Eq, Copy, PartialEq, Clone)]
#[graphql(name = "MyEnumDerive")]
enum MyEnumDeriveRenamed {
#[cfg_attr(feature = "bson", item(name = "A1"))]
A,
}
#[InputObject(name = "MyInputObj1")]
struct MyInputObj {
#[cfg_attr(feature = "bson", field(default))]
value: i32,
}
// Infers the name based on Rust name
#[derive(GQLInputObject)]
struct MyInputObjDerive {
#[cfg_attr(feature = "bson", field(default))]
value: i32,
}
// Can be renamed with graphql(name = ..) attribute
#[derive(GQLInputObject)]
#[graphql(name = "MyInputObjDerive")]
struct MyInputObjDeriveRenamed {
#[cfg_attr(feature = "bson", field(default))]
value: i32,
}
#[InputObject(name = "MySimpleObj1")]
struct MySimpleObj {
#[cfg_attr(feature = "bson", field(name = "value1"))]
value: i32,
}
// Infers the name based on Rust name
#[derive(GQLInputObject)]
struct MySimpleObjDerive {
#[cfg_attr(feature = "bson", field(name = "value1"))]
value: i32,
}
// Can be renamed with graphql(name = ..) attribute
#[derive(GQLInputObject)]
#[graphql(name = "MySimpleObjDerive")]
struct MySimpleObjDeriveRenamed {
#[cfg_attr(feature = "bson", field(name = "value1"))]
value: i32,
}
}