From 0887c847fae1052f77cfc44c2103473586e08d49 Mon Sep 17 00:00:00 2001 From: Graeme Coupar Date: Mon, 22 Jan 2024 10:19:45 +0000 Subject: [PATCH] Changelog & a test for #835 (#837) --- CHANGELOG.md | 4 +++ cynic/tests/arguments.rs | 43 +++++++++++++++++++++++++++++++++ cynic/tests/test-schema.graphql | 1 + 3 files changed, 48 insertions(+) create mode 100644 cynic/tests/arguments.rs diff --git a/CHANGELOG.md b/CHANGELOG.md index d3c04fa7..658634dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html ## Unreleased - xxxx-xx-xx +### Bug Fixes + +- Fixed an issue with object literals inside arguments + ## v3.4.0 - 2024-01-09 ### New Features diff --git a/cynic/tests/arguments.rs b/cynic/tests/arguments.rs new file mode 100644 index 00000000..20262ae2 --- /dev/null +++ b/cynic/tests/arguments.rs @@ -0,0 +1,43 @@ +//! Tests of the generated serialization code for InputObjects + +use serde::Serialize; + +mod schema { + cynic::use_schema!("tests/test-schema.graphql"); +} + +#[test] +fn test_literal_object_inside_list() { + use cynic::QueryBuilder; + + #[derive(cynic::QueryFragment, Serialize)] + #[cynic(graphql_type = "BlogPost", schema_path = "tests/test-schema.graphql")] + struct Post { + has_metadata: Option, + } + + #[derive(cynic::QueryFragment)] + #[cynic(schema_path = "tests/test-schema.graphql")] + struct Query { + #[allow(dead_code)] + #[arguments(filters: { any: [{states: DRAFT}] })] + filtered_posts: Vec, + } + + let query = Query::build(()); + + insta::assert_display_snapshot!(query.query, @r###" + query Query { + filteredPosts(filters: {any: [{states: [DRAFT, ], }, ], }) { + hasMetadata + } + } + + "###); +} + +#[derive(cynic::QueryFragment, Serialize)] +#[cynic(schema_path = "tests/test-schema.graphql")] +struct BlogPost { + has_metadata: Option, +} diff --git a/cynic/tests/test-schema.graphql b/cynic/tests/test-schema.graphql index 3c908d13..557a46a2 100644 --- a/cynic/tests/test-schema.graphql +++ b/cynic/tests/test-schema.graphql @@ -72,6 +72,7 @@ scalar DateTime input PostFilters { authorId: ID states: [PostState!] + any: [PostFilters!] } input InputWithDefaults {