Update file structure tests

This commit is contained in:
Aleksey Kladov 2020-07-01 17:59:44 +02:00
parent 14bf5bb7ee
commit 53e3a7aeb4

View File

@ -173,12 +173,19 @@ fn structure_node(node: &SyntaxNode) -> Option<StructureNode> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use expect::{expect, Expect};
use super::*; use super::*;
use insta::assert_debug_snapshot;
fn check(ra_fixture: &str, expect: Expect) {
let file = SourceFile::parse(ra_fixture).ok().unwrap();
let structure = file_structure(&file);
expect.assert_debug_eq(&structure)
}
#[test] #[test]
fn test_file_structure() { fn test_file_structure() {
let file = SourceFile::parse( check(
r#" r#"
struct Foo { struct Foo {
x: i32 x: i32
@ -223,216 +230,211 @@ fn obsolete() {}
#[deprecated(note = "for awhile")] #[deprecated(note = "for awhile")]
fn very_obsolete() {} fn very_obsolete() {}
"#, "#,
) expect![[r#"
.ok() [
.unwrap(); StructureNode {
let structure = file_structure(&file); parent: None,
assert_debug_snapshot!(structure, label: "Foo",
@r###" navigation_range: 8..11,
[ node_range: 1..26,
StructureNode { kind: STRUCT_DEF,
parent: None, detail: None,
label: "Foo", deprecated: false,
navigation_range: 8..11, },
node_range: 1..26, StructureNode {
kind: STRUCT_DEF, parent: Some(
detail: None, 0,
deprecated: false, ),
}, label: "x",
StructureNode { navigation_range: 18..19,
parent: Some( node_range: 18..24,
0, kind: RECORD_FIELD_DEF,
), detail: Some(
label: "x", "i32",
navigation_range: 18..19, ),
node_range: 18..24, deprecated: false,
kind: RECORD_FIELD_DEF, },
detail: Some( StructureNode {
"i32", parent: None,
), label: "m",
deprecated: false, navigation_range: 32..33,
}, node_range: 28..158,
StructureNode { kind: MODULE,
parent: None, detail: None,
label: "m", deprecated: false,
navigation_range: 32..33, },
node_range: 28..158, StructureNode {
kind: MODULE, parent: Some(
detail: None, 2,
deprecated: false, ),
}, label: "bar1",
StructureNode { navigation_range: 43..47,
parent: Some( node_range: 40..52,
2, kind: FN_DEF,
), detail: Some(
label: "bar1", "fn()",
navigation_range: 43..47, ),
node_range: 40..52, deprecated: false,
kind: FN_DEF, },
detail: Some( StructureNode {
"fn()", parent: Some(
), 2,
deprecated: false, ),
}, label: "bar2",
StructureNode { navigation_range: 60..64,
parent: Some( node_range: 57..81,
2, kind: FN_DEF,
), detail: Some(
label: "bar2", "fn<T>(t: T) -> T",
navigation_range: 60..64, ),
node_range: 57..81, deprecated: false,
kind: FN_DEF, },
detail: Some( StructureNode {
"fn<T>(t: T) -> T", parent: Some(
), 2,
deprecated: false, ),
}, label: "bar3",
StructureNode { navigation_range: 89..93,
parent: Some( node_range: 86..156,
2, kind: FN_DEF,
), detail: Some(
label: "bar3", "fn<A, B>(a: A, b: B) -> Vec< u32 >",
navigation_range: 89..93, ),
node_range: 86..156, deprecated: false,
kind: FN_DEF, },
detail: Some( StructureNode {
"fn<A, B>(a: A, b: B) -> Vec< u32 >", parent: None,
), label: "E",
deprecated: false, navigation_range: 165..166,
}, node_range: 160..180,
StructureNode { kind: ENUM_DEF,
parent: None, detail: None,
label: "E", deprecated: false,
navigation_range: 165..166, },
node_range: 160..180, StructureNode {
kind: ENUM_DEF, parent: Some(
detail: None, 6,
deprecated: false, ),
}, label: "X",
StructureNode { navigation_range: 169..170,
parent: Some( node_range: 169..170,
6, kind: ENUM_VARIANT,
), detail: None,
label: "X", deprecated: false,
navigation_range: 169..170, },
node_range: 169..170, StructureNode {
kind: ENUM_VARIANT, parent: Some(
detail: None, 6,
deprecated: false, ),
}, label: "Y",
StructureNode { navigation_range: 172..173,
parent: Some( node_range: 172..178,
6, kind: ENUM_VARIANT,
), detail: None,
label: "Y", deprecated: false,
navigation_range: 172..173, },
node_range: 172..178, StructureNode {
kind: ENUM_VARIANT, parent: None,
detail: None, label: "T",
deprecated: false, navigation_range: 186..187,
}, node_range: 181..193,
StructureNode { kind: TYPE_ALIAS_DEF,
parent: None, detail: Some(
label: "T", "()",
navigation_range: 186..187, ),
node_range: 181..193, deprecated: false,
kind: TYPE_ALIAS_DEF, },
detail: Some( StructureNode {
"()", parent: None,
), label: "S",
deprecated: false, navigation_range: 201..202,
}, node_range: 194..213,
StructureNode { kind: STATIC_DEF,
parent: None, detail: Some(
label: "S", "i32",
navigation_range: 201..202, ),
node_range: 194..213, deprecated: false,
kind: STATIC_DEF, },
detail: Some( StructureNode {
"i32", parent: None,
), label: "C",
deprecated: false, navigation_range: 220..221,
}, node_range: 214..232,
StructureNode { kind: CONST_DEF,
parent: None, detail: Some(
label: "C", "i32",
navigation_range: 220..221, ),
node_range: 214..232, deprecated: false,
kind: CONST_DEF, },
detail: Some( StructureNode {
"i32", parent: None,
), label: "impl E",
deprecated: false, navigation_range: 239..240,
}, node_range: 234..243,
StructureNode { kind: IMPL_DEF,
parent: None, detail: None,
label: "impl E", deprecated: false,
navigation_range: 239..240, },
node_range: 234..243, StructureNode {
kind: IMPL_DEF, parent: None,
detail: None, label: "impl fmt::Debug for E",
deprecated: false, navigation_range: 265..266,
}, node_range: 245..269,
StructureNode { kind: IMPL_DEF,
parent: None, detail: None,
label: "impl fmt::Debug for E", deprecated: false,
navigation_range: 265..266, },
node_range: 245..269, StructureNode {
kind: IMPL_DEF, parent: None,
detail: None, label: "mc",
deprecated: false, navigation_range: 284..286,
}, node_range: 271..303,
StructureNode { kind: MACRO_CALL,
parent: None, detail: None,
label: "mc", deprecated: false,
navigation_range: 284..286, },
node_range: 271..303, StructureNode {
kind: MACRO_CALL, parent: None,
detail: None, label: "mcexp",
deprecated: false, navigation_range: 334..339,
}, node_range: 305..356,
StructureNode { kind: MACRO_CALL,
parent: None, detail: None,
label: "mcexp", deprecated: false,
navigation_range: 334..339, },
node_range: 305..356, StructureNode {
kind: MACRO_CALL, parent: None,
detail: None, label: "mcexp",
deprecated: false, navigation_range: 387..392,
}, node_range: 358..409,
StructureNode { kind: MACRO_CALL,
parent: None, detail: None,
label: "mcexp", deprecated: false,
navigation_range: 387..392, },
node_range: 358..409, StructureNode {
kind: MACRO_CALL, parent: None,
detail: None, label: "obsolete",
deprecated: false, navigation_range: 428..436,
}, node_range: 411..441,
StructureNode { kind: FN_DEF,
parent: None, detail: Some(
label: "obsolete", "fn()",
navigation_range: 428..436, ),
node_range: 411..441, deprecated: true,
kind: FN_DEF, },
detail: Some( StructureNode {
"fn()", parent: None,
), label: "very_obsolete",
deprecated: true, navigation_range: 481..494,
}, node_range: 443..499,
StructureNode { kind: FN_DEF,
parent: None, detail: Some(
label: "very_obsolete", "fn()",
navigation_range: 481..494, ),
node_range: 443..499, deprecated: true,
kind: FN_DEF, },
detail: Some( ]
"fn()", "#]],
), );
deprecated: true,
},
]
"###
);
} }
} }