codama_nodes/display_nodes/
enum_variant_display_node.rs1use crate::EnumVariantDisplayNode;
2
3impl EnumVariantDisplayNode {
4 pub fn new<T>(label: T) -> Self
5 where
6 T: Into<String>,
7 {
8 Self {
9 label: Some(label.into()),
10 ..Default::default()
11 }
12 }
13}
14
15#[cfg(test)]
16mod tests {
17 use super::*;
18
19 #[test]
20 fn new() {
21 let node = EnumVariantDisplayNode::new("Buy");
22 assert_eq!(node.label.as_deref(), Some("Buy"));
23 assert_eq!(node.skip_inner_data, None);
24 }
25
26 #[test]
27 fn default() {
28 let node = EnumVariantDisplayNode::default();
29 assert_eq!(node.label, None);
30 assert_eq!(node.skip_inner_data, None);
31 }
32
33 #[test]
34 fn to_json() {
35 let node = EnumVariantDisplayNode {
36 label: Some("Buy".to_string()),
37 skip_inner_data: Some(true),
38 };
39 let json = serde_json::to_string(&node).unwrap();
40 assert_eq!(
41 json,
42 r#"{"kind":"enumVariantDisplayNode","label":"Buy","skipInnerData":true}"#
43 );
44 }
45
46 #[test]
47 fn from_json() {
48 let json = r#"{"kind":"enumVariantDisplayNode","label":"Buy"}"#;
49 let node: EnumVariantDisplayNode = serde_json::from_str(json).unwrap();
50 assert_eq!(node, EnumVariantDisplayNode::new("Buy"));
51 }
52}