mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 05:45:12 +00:00
switch to insta for testing
This commit is contained in:
parent
8caff4e034
commit
d79a9b17dc
20 changed files with 495 additions and 195 deletions
|
@ -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()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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())
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
]
|
|
@ -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"
|
||||
}
|
||||
]
|
22
crates/ra_ide_api/src/snapshots/tests__runnables.snap
Normal file
22
crates/ra_ide_api/src/snapshots/tests__runnables.snap
Normal 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"
|
||||
}
|
||||
}
|
||||
]
|
18
crates/ra_ide_api/src/snapshots/tests__runnables_module.snap
Normal file
18
crates/ra_ide_api/src/snapshots/tests__runnables_module.snap
Normal 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"
|
||||
}
|
||||
}
|
||||
]
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
]
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
]
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue