From 4e86d9f17cae529279ffa95b28cfc90e48ded65e Mon Sep 17 00:00:00 2001 From: Miaxos Date: Wed, 18 Aug 2021 14:22:17 +0000 Subject: [PATCH 1/2] fix: add test case for serializing issue --- tests/serializer_uuid.rs | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/serializer_uuid.rs diff --git a/tests/serializer_uuid.rs b/tests/serializer_uuid.rs new file mode 100644 index 00000000..ea32bdf8 --- /dev/null +++ b/tests/serializer_uuid.rs @@ -0,0 +1,42 @@ +use async_graphql::*; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize)] +#[repr(transparent)] +#[serde(transparent)] +struct AssetId(pub uuid::Uuid); + +async_graphql::scalar!(AssetId); + +#[tokio::test] +/// Test case for +/// https://github.com/async-graphql/async-graphql/issues/603 +pub async fn test_serialize_uuid() { + let generated_uuid = uuid::Uuid::new_v4(); + + struct Query { + data: AssetId, + } + + #[Object] + impl Query { + async fn data(&self) -> &AssetId { + &self.data + } + } + + let schema = Schema::new( + Query { + data: AssetId(generated_uuid), + }, + EmptyMutation, + EmptySubscription, + ); + let query = r#"{ data }"#; + assert_eq!( + schema.execute(query).await.data, + value!({ + "data": generated_uuid.to_string(), + }) + ); +} From c61abea1f1fe3b8eafb12d8ec5f6f52ecbdd52ab Mon Sep 17 00:00:00 2001 From: Miaxos Date: Wed, 18 Aug 2021 14:51:40 +0000 Subject: [PATCH 2/2] fix: add human readable for serializer --- value/src/serializer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/value/src/serializer.rs b/value/src/serializer.rs index 90fabc9b..1db14dfe 100644 --- a/value/src/serializer.rs +++ b/value/src/serializer.rs @@ -249,7 +249,7 @@ impl ser::Serializer for Serializer { #[inline] fn is_human_readable(&self) -> bool { - false + true } }