Skip to content

Commit da9ea86

Browse files
committed
refactor: Use snapbox::str to auto-update tests
1 parent 1aa3447 commit da9ea86

File tree

1 file changed

+74
-44
lines changed

1 file changed

+74
-44
lines changed

tests/formatter.rs

+74-44
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
use annotate_snippets::{Level, Renderer, Snippet};
22

3+
use snapbox::{assert_eq, str};
4+
35
#[test]
46
fn test_i_29() {
57
let snippets = Level::Error.title("oops").snippet(
@@ -8,16 +10,18 @@ fn test_i_29() {
810
.annotation(Level::Error.span(19..23).label("oops"))
911
.fold(true),
1012
);
11-
let expected = r#"error: oops
13+
let expected = str![[r#"
14+
error: oops
1215
--> <current file>:2:8
1316
|
1417
1 | First line
1518
2 | Second oops line
1619
| ^^^^ oops
17-
|"#;
20+
|"#]]
21+
.indent(false);
1822

1923
let renderer = Renderer::plain();
20-
assert_eq!(renderer.render(snippets).to_string(), expected);
24+
assert_eq(expected, renderer.render(snippets).to_string());
2125
}
2226

2327
#[test]
@@ -28,15 +32,17 @@ fn test_point_to_double_width_characters() {
2832
.annotation(Level::Error.span(18..24).label("world")),
2933
);
3034

31-
let expected = r#"error
35+
let expected = str![[r#"
36+
error
3237
--> <current file>:1:7
3338
|
3439
1 | こんにちは、世界
3540
| ^^^^ world
36-
|"#;
41+
|"#]]
42+
.indent(false);
3743

3844
let renderer = Renderer::plain();
39-
assert_eq!(renderer.render(snippets).to_string(), expected);
45+
assert_eq(expected, renderer.render(snippets).to_string());
4046
}
4147

4248
#[test]
@@ -47,17 +53,19 @@ fn test_point_to_double_width_characters_across_lines() {
4753
.annotation(Level::Error.span(6..22).label("Good morning")),
4854
);
4955

50-
let expected = r#"error
56+
let expected = str![[r#"
57+
error
5158
--> <current file>:1:3
5259
|
5360
1 | おはよう
5461
| _____^
5562
2 | | ございます
5663
| |______^ Good morning
57-
|"#;
64+
|"#]]
65+
.indent(false);
5866

5967
let renderer = Renderer::plain();
60-
assert_eq!(renderer.render(snippets).to_string(), expected);
68+
assert_eq(expected, renderer.render(snippets).to_string());
6169
}
6270

6371
#[test]
@@ -69,17 +77,19 @@ fn test_point_to_double_width_characters_multiple() {
6977
.annotation(Level::Note.span(16..22).label("Sushi2")),
7078
);
7179

72-
let expected = r#"error
80+
let expected = str![[r#"
81+
error
7382
--> <current file>:1:1
7483
|
7584
1 | お寿司
7685
| ^^^^^^ Sushi1
7786
2 | 食べたい🍣
7887
| ---- note: Sushi2
79-
|"#;
88+
|"#]]
89+
.indent(false);
8090

8191
let renderer = Renderer::plain();
82-
assert_eq!(renderer.render(snippets).to_string(), expected);
92+
assert_eq(expected, renderer.render(snippets).to_string());
8393
}
8494

8595
#[test]
@@ -90,24 +100,26 @@ fn test_point_to_double_width_characters_mixed() {
90100
.annotation(Level::Error.span(18..32).label("New world")),
91101
);
92102

93-
let expected = r#"error
103+
let expected = str![[r#"
104+
error
94105
--> <current file>:1:7
95106
|
96107
1 | こんにちは、新しいWorld!
97108
| ^^^^^^^^^^^ New world
98-
|"#;
109+
|"#]]
110+
.indent(false);
99111

100112
let renderer = Renderer::plain();
101-
assert_eq!(renderer.render(snippets).to_string(), expected);
113+
assert_eq(expected, renderer.render(snippets).to_string());
102114
}
103115

104116
#[test]
105117
fn test_format_title() {
106118
let input = Level::Error.title("This is a title").id("E0001");
107119

108-
let expected = r#"error[E0001]: This is a title"#;
120+
let expected = str![r#"error[E0001]: This is a title"#];
109121
let renderer = Renderer::plain();
110-
assert_eq!(renderer.render(input).to_string(), expected);
122+
assert_eq(expected, renderer.render(input).to_string());
111123
}
112124

113125
#[test]
@@ -117,13 +129,15 @@ fn test_format_snippet_only() {
117129
.title("")
118130
.snippet(Snippet::source(source).line_start(5402));
119131

120-
let expected = r#"error
132+
let expected = str![[r#"
133+
error
121134
|
122135
5402 | This is line 1
123136
5403 | This is line 2
124-
|"#;
137+
|"#]]
138+
.indent(false);
125139
let renderer = Renderer::plain();
126-
assert_eq!(renderer.render(input).to_string(), expected);
140+
assert_eq(expected, renderer.render(input).to_string());
127141
}
128142

129143
#[test]
@@ -134,17 +148,19 @@ fn test_format_snippets_continuation() {
134148
.title("")
135149
.snippet(Snippet::source(src_0).line_start(5402).origin("file1.rs"))
136150
.snippet(Snippet::source(src_1).line_start(2).origin("file2.rs"));
137-
let expected = r#"error
151+
let expected = str![[r#"
152+
error
138153
--> file1.rs
139154
|
140155
5402 | This is slice 1
141156
|
142157
::: file2.rs
143158
|
144159
2 | This is slice 2
145-
|"#;
160+
|"#]]
161+
.indent(false);
146162
let renderer = Renderer::plain();
147-
assert_eq!(renderer.render(input).to_string(), expected);
163+
assert_eq(expected, renderer.render(input).to_string());
148164
}
149165

150166
#[test]
@@ -159,25 +175,29 @@ fn test_format_snippet_annotation_standalone() {
159175
.line_start(5402)
160176
.annotation(Level::Info.span(range.clone()).label("Test annotation")),
161177
);
162-
let expected = r#"error
178+
let expected = str![[r#"
179+
error
163180
|
164181
5402 | This is line 1
165182
5403 | This is line 2
166183
| -- info: Test annotation
167-
|"#;
184+
|"#]]
185+
.indent(false);
168186
let renderer = Renderer::plain();
169-
assert_eq!(renderer.render(input).to_string(), expected);
187+
assert_eq(expected, renderer.render(input).to_string());
170188
}
171189

172190
#[test]
173191
fn test_format_footer_title() {
174192
let input = Level::Error
175193
.title("")
176194
.footer(Level::Error.title("This __is__ a title"));
177-
let expected = r#"error
178-
= error: This __is__ a title"#;
195+
let expected = str![[r#"
196+
error
197+
= error: This __is__ a title"#]]
198+
.indent(false);
179199
let renderer = Renderer::plain();
180-
assert_eq!(renderer.render(input).to_string(), expected);
200+
assert_eq(expected, renderer.render(input).to_string());
181201
}
182202

183203
#[test]
@@ -200,13 +220,15 @@ fn test_source_content() {
200220
let input = Level::Error
201221
.title("")
202222
.snippet(Snippet::source(source).line_start(56));
203-
let expected = r#"error
223+
let expected = str![[r#"
224+
error
204225
|
205226
56 | This is an example
206227
57 | of content lines
207-
|"#;
228+
|"#]]
229+
.indent(false);
208230
let renderer = Renderer::plain();
209-
assert_eq!(renderer.render(input).to_string(), expected);
231+
assert_eq(expected, renderer.render(input).to_string());
210232
}
211233

212234
#[test]
@@ -217,13 +239,15 @@ fn test_source_annotation_standalone_singleline() {
217239
.line_start(1)
218240
.annotation(Level::Help.span(0..5).label("Example string")),
219241
);
220-
let expected = r#"error
242+
let expected = str![[r#"
243+
error
221244
|
222245
1 | tests
223246
| ----- help: Example string
224-
|"#;
247+
|"#]]
248+
.indent(false);
225249
let renderer = Renderer::plain();
226-
assert_eq!(renderer.render(input).to_string(), expected);
250+
assert_eq(expected, renderer.render(input).to_string());
227251
}
228252

229253
#[test]
@@ -235,27 +259,31 @@ fn test_source_annotation_standalone_multiline() {
235259
.annotation(Level::Help.span(0..5).label("Example string"))
236260
.annotation(Level::Help.span(0..5).label("Second line")),
237261
);
238-
let expected = r#"error
262+
let expected = str![[r#"
263+
error
239264
|
240265
1 | tests
241266
| ----- help: Example string
242267
| ----- help: Second line
243-
|"#;
268+
|"#]]
269+
.indent(false);
244270
let renderer = Renderer::plain();
245-
assert_eq!(renderer.render(input).to_string(), expected);
271+
assert_eq(expected, renderer.render(input).to_string());
246272
}
247273

248274
#[test]
249275
fn test_only_source() {
250276
let input = Level::Error
251277
.title("")
252278
.snippet(Snippet::source("").origin("file.rs"));
253-
let expected = r#"error
279+
let expected = str![[r#"
280+
error
254281
--> file.rs
255282
|
256-
|"#;
283+
|"#]]
284+
.indent(false);
257285
let renderer = Renderer::plain();
258-
assert_eq!(renderer.render(input).to_string(), expected);
286+
assert_eq(expected, renderer.render(input).to_string());
259287
}
260288

261289
#[test]
@@ -264,13 +292,15 @@ fn test_anon_lines() {
264292
let input = Level::Error
265293
.title("")
266294
.snippet(Snippet::source(source).line_start(56));
267-
let expected = r#"error
295+
let expected = str![[r#"
296+
error
268297
|
269298
LL | This is an example
270299
LL | of content lines
271300
LL |
272301
LL | abc
273-
|"#;
302+
|"#]]
303+
.indent(false);
274304
let renderer = Renderer::plain().anonymized_line_numbers(true);
275-
assert_eq!(renderer.render(input).to_string(), expected);
305+
assert_eq(expected, renderer.render(input).to_string());
276306
}

0 commit comments

Comments
 (0)