test: base snapshot testing for folding range

This commit is contained in:
Myriad-Dreamin 2024-03-09 23:43:27 +08:00
parent 279bead9e1
commit 152b23ebac
7 changed files with 181 additions and 34 deletions

View file

@ -0,0 +1,10 @@
= Heading 1
#let a = 1;
== Heading 2
#let b = 1;
= Heading 3
#let c = 1;
#let d = {
let e = 1;
0
}

View file

@ -0,0 +1,9 @@
#let a = [
== Heading 1
#lorem(1)
#let b = [
// todo: there is a bug
== Heading 2
#lorem(1)
]
]

View file

@ -0,0 +1,19 @@
#let a = {
let b = {
let c = [
]
}
let b = {{
}}
let b = {
let c = {
} + {
}
}
let b = {
}
}

View file

@ -0,0 +1,35 @@
---
source: crates/tinymist-query/src/folding_range.rs
expression: "JsonRepr::new_pure(result.unwrap())"
input_file: crates/tinymist-query/src/fixtures/folding_range/base.typ
---
[
{
"collapsedText": "Heading 2",
"endCharacter": 12,
"endLine": 2,
"startCharacter": 3,
"startLine": 2
},
{
"collapsedText": "Heading 1",
"endCharacter": 11,
"endLine": 3,
"startCharacter": 2,
"startLine": 0
},
{
"collapsedText": "",
"endCharacter": 1,
"endLine": 9,
"startCharacter": 9,
"startLine": 6
},
{
"collapsedText": "Heading 3",
"endCharacter": 11,
"endLine": 9,
"startCharacter": 2,
"startLine": 4
}
]

View file

@ -0,0 +1,35 @@
---
source: crates/tinymist-query/src/folding_range.rs
expression: "JsonRepr::new_pure(result.unwrap())"
input_file: crates/tinymist-query/src/fixtures/folding_range/headings-in-blocks.typ
---
[
{
"collapsedText": "Heading 2",
"endCharacter": 16,
"endLine": 8,
"startCharacter": 7,
"startLine": 5
},
{
"collapsedText": "",
"endCharacter": 3,
"endLine": 7,
"startCharacter": 11,
"startLine": 3
},
{
"collapsedText": "Heading 1",
"endCharacter": 14,
"endLine": 8,
"startCharacter": 5,
"startLine": 1
},
{
"collapsedText": "",
"endCharacter": 1,
"endLine": 8,
"startCharacter": 9,
"startLine": 0
}
]

View file

@ -0,0 +1,70 @@
---
source: crates/tinymist-query/src/folding_range.rs
expression: "JsonRepr::new_pure(result.unwrap())"
input_file: crates/tinymist-query/src/fixtures/folding_range/nested-blocks.typ
---
[
{
"collapsedText": "",
"endCharacter": 5,
"endLine": 4,
"startCharacter": 12,
"startLine": 2
},
{
"collapsedText": "",
"endCharacter": 3,
"endLine": 5,
"startCharacter": 10,
"startLine": 1
},
{
"collapsedText": "",
"endCharacter": 3,
"endLine": 8,
"startCharacter": 11,
"startLine": 6
},
{
"collapsedText": "",
"endCharacter": 4,
"endLine": 8,
"startCharacter": 10,
"startLine": 6
},
{
"collapsedText": "",
"endCharacter": 5,
"endLine": 12,
"startCharacter": 12,
"startLine": 10
},
{
"collapsedText": "",
"endCharacter": 5,
"endLine": 14,
"startCharacter": 8,
"startLine": 12
},
{
"collapsedText": "",
"endCharacter": 3,
"endLine": 15,
"startCharacter": 10,
"startLine": 9
},
{
"collapsedText": "",
"endCharacter": 3,
"endLine": 17,
"startCharacter": 10,
"startLine": 16
},
{
"collapsedText": "",
"endCharacter": 1,
"endLine": 18,
"startCharacter": 9,
"startLine": 0
}
]

View file

@ -117,8 +117,8 @@ mod tests {
use crate::tests::*;
#[test]
fn test_folding_range_request() {
run_with_source("#let a = 1;", |world, path| {
fn test() {
snapshot_testing("folding_range", &|world, path| {
let request = FoldingRangeRequest {
path: path.clone(),
line_folding_only: true,
@ -127,38 +127,7 @@ mod tests {
let source = get_suitable_source_in_workspace(world, &path).unwrap();
let result = request.request(source, PositionEncoding::Utf16);
assert_snapshot!(JsonRepr::new_pure(result.unwrap()), @"[]");
});
let t = r#"#let a = {
let b = {
}
}"#;
run_with_source(t, |world, path| {
let request = FoldingRangeRequest {
path: path.clone(),
line_folding_only: true,
};
let source = get_suitable_source_in_workspace(world, &path).unwrap();
let result = request.request(source, PositionEncoding::Utf16);
assert_snapshot!(JsonRepr::new_pure(result.unwrap()), @r###"
[
{
"collapsedText": "",
"endLine": 0,
"startCharacter": 9,
"startLine": 0
},
{
"collapsedText": "",
"endLine": 3,
"startCharacter": 10,
"startLine": 1
}
]
"###);
assert_snapshot!(JsonRepr::new_pure(result.unwrap()));
});
}
}