Move all use of snapshot to inline
diff --git a/tests/test_attribute.rs b/tests/test_attribute.rs
index ab21544..2a7e106 100644
--- a/tests/test_attribute.rs
+++ b/tests/test_attribute.rs
@@ -6,62 +6,274 @@
mod macros;
use syn::parse::Parser;
-use syn::Attribute;
+use syn::{Attribute, Meta};
#[test]
fn test_meta_item_word() {
- test("#[foo]")
+ let (interpret, parse) = test("#[foo]");
+
+ snapshot!(interpret, @r###"Word("foo")"###);
+
+ snapshot!(parse, @r###"Word("foo")"###);
}
#[test]
fn test_meta_item_name_value() {
- test("#[foo = 5]")
+ let (interpret, parse) = test("#[foo = 5]");
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::NameValue {
+ ⋮ ident: "foo",
+ ⋮ lit: 5,
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::NameValue {
+ ⋮ ident: "foo",
+ ⋮ lit: 5,
+ ⋮}
+ "###);
}
#[test]
fn test_meta_item_bool_value() {
- test("#[foo = true]");
- test("#[foo = false]")
+ let (interpret, parse) = test("#[foo = true]");;
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::NameValue {
+ ⋮ ident: "foo",
+ ⋮ lit: Lit::Bool {
+ ⋮ value: true,
+ ⋮ },
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::NameValue {
+ ⋮ ident: "foo",
+ ⋮ lit: Lit::Bool {
+ ⋮ value: true,
+ ⋮ },
+ ⋮}
+ "###);
+
+ let (interpret, parse) = test("#[foo = false]");
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::NameValue {
+ ⋮ ident: "foo",
+ ⋮ lit: Lit::Bool {
+ ⋮ value: false,
+ ⋮ },
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::NameValue {
+ ⋮ ident: "foo",
+ ⋮ lit: Lit::Bool {
+ ⋮ value: false,
+ ⋮ },
+ ⋮}
+ "###);
}
#[test]
fn test_meta_item_list_lit() {
- test("#[foo(5)]")
+ let (interpret, parse) = test("#[foo(5)]");
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Literal(5),
+ ⋮ ],
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Literal(5),
+ ⋮ ],
+ ⋮}
+ "###);
}
#[test]
fn test_meta_item_list_word() {
- test("#[foo(bar)]")
+ let (interpret, parse) = test("#[foo(bar)]");
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Meta(Word("bar")),
+ ⋮ ],
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Meta(Word("bar")),
+ ⋮ ],
+ ⋮}
+ "###);
}
#[test]
fn test_meta_item_list_name_value() {
- test("#[foo(bar = 5)]")
+ let (interpret, parse) = test("#[foo(bar = 5)]");
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Meta(Meta::NameValue {
+ ⋮ ident: "bar",
+ ⋮ lit: 5,
+ ⋮ }),
+ ⋮ ],
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Meta(Meta::NameValue {
+ ⋮ ident: "bar",
+ ⋮ lit: 5,
+ ⋮ }),
+ ⋮ ],
+ ⋮}
+ "###);
}
#[test]
fn test_meta_item_list_bool_value() {
- test("#[foo(bar = true)]")
+ let (interpret, parse) = test("#[foo(bar = true)]");
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Meta(Meta::NameValue {
+ ⋮ ident: "bar",
+ ⋮ lit: Lit::Bool {
+ ⋮ value: true,
+ ⋮ },
+ ⋮ }),
+ ⋮ ],
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Meta(Meta::NameValue {
+ ⋮ ident: "bar",
+ ⋮ lit: Lit::Bool {
+ ⋮ value: true,
+ ⋮ },
+ ⋮ }),
+ ⋮ ],
+ ⋮}
+ "###);
}
#[test]
fn test_meta_item_multiple() {
- test("#[foo(word, name = 5, list(name2 = 6), word2)]")
+ let (interpret, parse) = test("#[foo(word, name = 5, list(name2 = 6), word2)]");
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Meta(Word("word")),
+ ⋮ Meta(Meta::NameValue {
+ ⋮ ident: "name",
+ ⋮ lit: 5,
+ ⋮ }),
+ ⋮ Meta(Meta::List {
+ ⋮ ident: "list",
+ ⋮ nested: [
+ ⋮ Meta(Meta::NameValue {
+ ⋮ ident: "name2",
+ ⋮ lit: 6,
+ ⋮ }),
+ ⋮ ],
+ ⋮ }),
+ ⋮ Meta(Word("word2")),
+ ⋮ ],
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Meta(Word("word")),
+ ⋮ Meta(Meta::NameValue {
+ ⋮ ident: "name",
+ ⋮ lit: 5,
+ ⋮ }),
+ ⋮ Meta(Meta::List {
+ ⋮ ident: "list",
+ ⋮ nested: [
+ ⋮ Meta(Meta::NameValue {
+ ⋮ ident: "name2",
+ ⋮ lit: 6,
+ ⋮ }),
+ ⋮ ],
+ ⋮ }),
+ ⋮ Meta(Word("word2")),
+ ⋮ ],
+ ⋮}
+ "###);
}
#[test]
fn test_bool_lit() {
- test("#[foo(true)]")
+ let (interpret, parse) = test("#[foo(true)]");
+
+ snapshot!(interpret, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Literal(Lit::Bool {
+ ⋮ value: true,
+ ⋮ }),
+ ⋮ ],
+ ⋮}
+ "###);
+
+ snapshot!(parse, @r###"
+ ⋮Meta::List {
+ ⋮ ident: "foo",
+ ⋮ nested: [
+ ⋮ Literal(Lit::Bool {
+ ⋮ value: true,
+ ⋮ }),
+ ⋮ ],
+ ⋮}
+ "###);
}
-fn test(input: &str) {
+fn test(input: &str) -> (Meta, Meta) {
let attrs = Attribute::parse_outer.parse_str(input).unwrap();
assert_eq!(attrs.len(), 1);
-
let attr = attrs.into_iter().next().unwrap();
- let interpret = snapshot!(attr.interpret_meta().unwrap());
- let parse = snapshot!(attr.parse_meta().unwrap());
+ let interpret = attr.interpret_meta().unwrap();
+ let parse = attr.parse_meta().unwrap();
assert_eq!(interpret, parse);
+
+ (interpret, parse)
}