Move tests to snapshot testing via insta
diff --git a/tests/test_attribute.rs b/tests/test_attribute.rs
new file mode 100644
index 0000000..ab21544
--- /dev/null
+++ b/tests/test_attribute.rs
@@ -0,0 +1,67 @@
+extern crate syn;
+
+mod features;
+
+#[macro_use]
+mod macros;
+
+use syn::parse::Parser;
+use syn::Attribute;
+
+#[test]
+fn test_meta_item_word() {
+ test("#[foo]")
+}
+
+#[test]
+fn test_meta_item_name_value() {
+ test("#[foo = 5]")
+}
+
+#[test]
+fn test_meta_item_bool_value() {
+ test("#[foo = true]");
+ test("#[foo = false]")
+}
+
+#[test]
+fn test_meta_item_list_lit() {
+ test("#[foo(5)]")
+}
+
+#[test]
+fn test_meta_item_list_word() {
+ test("#[foo(bar)]")
+}
+
+#[test]
+fn test_meta_item_list_name_value() {
+ test("#[foo(bar = 5)]")
+}
+
+#[test]
+fn test_meta_item_list_bool_value() {
+ test("#[foo(bar = true)]")
+}
+
+#[test]
+fn test_meta_item_multiple() {
+ test("#[foo(word, name = 5, list(name2 = 6), word2)]")
+}
+
+#[test]
+fn test_bool_lit() {
+ test("#[foo(true)]")
+}
+
+fn test(input: &str) {
+ 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());
+
+ assert_eq!(interpret, parse);
+}