graphql_federated_graph/directives/
deprecated.rs

1use cynic_parser_deser::ValueDeserialize;
2
3#[derive(ValueDeserialize)]
4pub struct DeprecatedDirective<'a> {
5    pub reason: Option<&'a str>,
6}
7
8#[cfg(test)]
9mod tests {
10    use super::*;
11    use crate::directives::{directive_test_document, parse_from_test_document};
12
13    #[test]
14    fn test_parsing_no_reason() {
15        let doc = directive_test_document("@deprecated");
16        let value = parse_from_test_document::<DeprecatedDirective<'_>>(&doc).unwrap();
17
18        assert_eq!(value.reason, None);
19    }
20
21    #[test]
22    fn test_parsing_with_reason() {
23        let doc = directive_test_document("@deprecated(reason: \"because I wanted to\")");
24        let value = parse_from_test_document::<DeprecatedDirective<'_>>(&doc).unwrap();
25
26        assert_eq!(value.reason, Some("because I wanted to"));
27    }
28}