switch to insta for testing

This commit is contained in:
Aleksey Kladov 2019-01-14 16:27:08 +03:00
parent 8caff4e034
commit d79a9b17dc
20 changed files with 495 additions and 195 deletions

View file

@ -38,8 +38,9 @@ fn find_macro_call(node: &SyntaxNode, range: TextRange) -> Option<&ast::MacroCal
#[cfg(test)]
mod tests {
use ra_syntax::TextRange;
use crate::mock_analysis::single_file_with_range;
use test_utils::assert_eq_dbg;
#[test]
fn extend_selection_inside_macros() {
@ -51,6 +52,6 @@ mod tests {
",
);
let r = analysis.extend_selection(frange);
assert_eq_dbg("[51; 56)", &r);
assert_eq!(r, TextRange::from_to(51.into(), 56.into()));
}
}

View file

@ -92,3 +92,100 @@ fn runnable_mod(db: &RootDatabase, file_id: FileId, module: &ast::Module) -> Opt
kind: RunnableKind::TestMod { path },
})
}
#[cfg(test)]
mod tests {
use insta::assert_debug_snapshot_matches;
use crate::mock_analysis::analysis_and_position;
#[test]
fn test_runnables() {
let (analysis, pos) = analysis_and_position(
r#"
//- /lib.rs
<|> //empty
fn main() {}
#[test]
fn test_foo() {}
#[test]
#[ignore]
fn test_foo() {}
"#,
);
let runnables = analysis.runnables(pos.file_id).unwrap();
assert_debug_snapshot_matches!("runnables", &runnables)
}
#[test]
fn test_runnables_module() {
let (analysis, pos) = analysis_and_position(
r#"
//- /lib.rs
<|> //empty
mod test_mod {
#[test]
fn test_foo1() {}
}
"#,
);
let runnables = analysis.runnables(pos.file_id).unwrap();
assert_debug_snapshot_matches!("runnables_module", &runnables)
}
#[test]
fn test_runnables_one_depth_layer_module() {
let (analysis, pos) = analysis_and_position(
r#"
//- /lib.rs
<|> //empty
mod foo {
mod test_mod {
#[test]
fn test_foo1() {}
}
}
"#,
);
let runnables = analysis.runnables(pos.file_id).unwrap();
assert_debug_snapshot_matches!("runnables_one_depth_layer_module", &runnables)
}
#[test]
fn test_runnables_multiple_depth_module() {
let (analysis, pos) = analysis_and_position(
r#"
//- /lib.rs
<|> //empty
mod foo {
mod bar {
mod test_mod {
#[test]
fn test_foo1() {}
}
}
}
"#,
);
let runnables = analysis.runnables(pos.file_id).unwrap();
assert_debug_snapshot_matches!("runnables_multiple_depth_module", &runnables)
}
#[test]
fn test_runnables_no_test_function_in_module() {
let (analysis, pos) = analysis_and_position(
r#"
//- /lib.rs
<|> //empty
mod test_mod {
fn foo1() {}
}
"#,
);
let runnables = analysis.runnables(pos.file_id).unwrap();
assert!(runnables.is_empty())
}
}

View file

@ -0,0 +1,26 @@
Created: 2019-01-15T11:15:20.732493641+00:00
Creator: insta@0.1.4
Source: crates/ra_ide_api/src/syntax_highlighting.rs
[
HighlightedRange {
range: [20; 32),
tag: "macro"
},
HighlightedRange {
range: [13; 18),
tag: "text"
},
HighlightedRange {
range: [51; 54),
tag: "keyword"
},
HighlightedRange {
range: [55; 60),
tag: "keyword"
},
HighlightedRange {
range: [61; 72),
tag: "function"
}
]

View file

@ -0,0 +1,70 @@
Created: 2019-01-15T11:15:20.732523231+00:00
Creator: insta@0.1.4
Source: crates/ra_ide_api/src/syntax_highlighting.rs
[
HighlightedRange {
range: [13; 15),
tag: "keyword"
},
HighlightedRange {
range: [16; 20),
tag: "function"
},
HighlightedRange {
range: [41; 46),
tag: "macro"
},
HighlightedRange {
range: [49; 52),
tag: "keyword"
},
HighlightedRange {
range: [57; 59),
tag: "literal"
},
HighlightedRange {
range: [82; 86),
tag: "macro"
},
HighlightedRange {
range: [89; 92),
tag: "keyword"
},
HighlightedRange {
range: [97; 99),
tag: "literal"
},
HighlightedRange {
range: [49; 52),
tag: "keyword"
},
HighlightedRange {
range: [53; 54),
tag: "function"
},
HighlightedRange {
range: [57; 59),
tag: "literal"
},
HighlightedRange {
range: [61; 62),
tag: "text"
},
HighlightedRange {
range: [89; 92),
tag: "keyword"
},
HighlightedRange {
range: [93; 94),
tag: "function"
},
HighlightedRange {
range: [97; 99),
tag: "literal"
},
HighlightedRange {
range: [101; 102),
tag: "text"
}
]

View file

@ -0,0 +1,22 @@
Created: 2019-01-15T11:15:20.732460119+00:00
Creator: insta@0.1.4
Source: crates/ra_ide_api/src/runnables.rs
[
Runnable {
range: [1; 21),
kind: Bin
},
Runnable {
range: [22; 46),
kind: Test {
name: "test_foo"
}
},
Runnable {
range: [47; 81),
kind: Test {
name: "test_foo"
}
}
]

View file

@ -0,0 +1,18 @@
Created: 2019-01-15T11:15:20.732460109+00:00
Creator: insta@0.1.4
Source: crates/ra_ide_api/src/runnables.rs
[
Runnable {
range: [1; 59),
kind: TestMod {
path: "test_mod"
}
},
Runnable {
range: [28; 57),
kind: Test {
name: "test_foo1"
}
}
]

View file

@ -0,0 +1,18 @@
Created: 2019-01-15T11:15:20.732522773+00:00
Creator: insta@0.1.4
Source: crates/ra_ide_api/src/runnables.rs
[
Runnable {
range: [41; 115),
kind: TestMod {
path: "foo::bar::test_mod"
}
},
Runnable {
range: [68; 105),
kind: Test {
name: "test_foo1"
}
}
]

View file

@ -0,0 +1,18 @@
Created: 2019-01-15T11:15:20.732480089+00:00
Creator: insta@0.1.4
Source: crates/ra_ide_api/src/runnables.rs
[
Runnable {
range: [23; 85),
kind: TestMod {
path: "foo::test_mod"
}
},
Runnable {
range: [46; 79),
kind: Test {
name: "test_foo1"
}
}
]

View file

@ -34,7 +34,8 @@ pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Cancelable<Vec<Hi
#[cfg(test)]
mod tests {
use crate::mock_analysis::single_file;
use test_utils::assert_eq_dbg;
use insta::assert_debug_snapshot_matches;
#[test]
fn highlights_code_inside_macros() {
@ -47,25 +48,7 @@ mod tests {
",
);
let highlights = analysis.highlight(file_id).unwrap();
assert_eq_dbg(
r#"[HighlightedRange { range: [13; 15), tag: "keyword" },
HighlightedRange { range: [16; 20), tag: "function" },
HighlightedRange { range: [41; 46), tag: "macro" },
HighlightedRange { range: [49; 52), tag: "keyword" },
HighlightedRange { range: [57; 59), tag: "literal" },
HighlightedRange { range: [82; 86), tag: "macro" },
HighlightedRange { range: [89; 92), tag: "keyword" },
HighlightedRange { range: [97; 99), tag: "literal" },
HighlightedRange { range: [49; 52), tag: "keyword" },
HighlightedRange { range: [53; 54), tag: "function" },
HighlightedRange { range: [57; 59), tag: "literal" },
HighlightedRange { range: [61; 62), tag: "text" },
HighlightedRange { range: [89; 92), tag: "keyword" },
HighlightedRange { range: [93; 94), tag: "function" },
HighlightedRange { range: [97; 99), tag: "literal" },
HighlightedRange { range: [101; 102), tag: "text" }]"#,
&highlights,
)
assert_debug_snapshot_matches!("highlights_code_inside_macros", &highlights);
}
// FIXME: this test is not really necessary: artifact of the inital hacky
@ -80,13 +63,6 @@ mod tests {
",
);
let highlights = analysis.highlight(file_id).unwrap();
assert_eq_dbg(
r#"[HighlightedRange { range: [20; 32), tag: "macro" },
HighlightedRange { range: [13; 18), tag: "text" },
HighlightedRange { range: [51; 54), tag: "keyword" },
HighlightedRange { range: [55; 60), tag: "keyword" },
HighlightedRange { range: [61; 72), tag: "function" }]"#,
&highlights,
)
assert_debug_snapshot_matches!("highlight_query_group_macro", &highlights);
}
}