Skip to content

Commit 05916ff

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

File tree

1 file changed

+60
-44
lines changed

1 file changed

+60
-44
lines changed

tests/formatter.rs

+60-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,17 @@ 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+
|"#]].indent(false);
1821

1922
let renderer = Renderer::plain();
20-
assert_eq!(renderer.render(snippets).to_string(), expected);
23+
assert_eq(expected, renderer.render(snippets).to_string());
2124
}
2225

2326
#[test]
@@ -28,15 +31,16 @@ fn test_point_to_double_width_characters() {
2831
.annotation(Level::Error.span(18..24).label("world")),
2932
);
3033

31-
let expected = r#"error
34+
let expected = str![[r#"
35+
error
3236
--> <current file>:1:7
3337
|
3438
1 | こんにちは、世界
3539
| ^^^^ world
36-
|"#;
40+
|"#]].indent(false);
3741

3842
let renderer = Renderer::plain();
39-
assert_eq!(renderer.render(snippets).to_string(), expected);
43+
assert_eq(expected, renderer.render(snippets).to_string());
4044
}
4145

4246
#[test]
@@ -47,17 +51,18 @@ fn test_point_to_double_width_characters_across_lines() {
4751
.annotation(Level::Error.span(6..22).label("Good morning")),
4852
);
4953

50-
let expected = r#"error
54+
let expected = str![[r#"
55+
error
5156
--> <current file>:1:3
5257
|
5358
1 | おはよう
5459
| _____^
5560
2 | | ございます
5661
| |______^ Good morning
57-
|"#;
62+
|"#]].indent(false);
5863

5964
let renderer = Renderer::plain();
60-
assert_eq!(renderer.render(snippets).to_string(), expected);
65+
assert_eq(expected, renderer.render(snippets).to_string());
6166
}
6267

6368
#[test]
@@ -69,17 +74,18 @@ fn test_point_to_double_width_characters_multiple() {
6974
.annotation(Level::Note.span(16..22).label("Sushi2")),
7075
);
7176

72-
let expected = r#"error
77+
let expected = str![[r#"
78+
error
7379
--> <current file>:1:1
7480
|
7581
1 | お寿司
7682
| ^^^^^^ Sushi1
7783
2 | 食べたい🍣
7884
| ---- note: Sushi2
79-
|"#;
85+
|"#]].indent(false);
8086

8187
let renderer = Renderer::plain();
82-
assert_eq!(renderer.render(snippets).to_string(), expected);
88+
assert_eq(expected, renderer.render(snippets).to_string());
8389
}
8490

8591
#[test]
@@ -90,24 +96,25 @@ fn test_point_to_double_width_characters_mixed() {
9096
.annotation(Level::Error.span(18..32).label("New world")),
9197
);
9298

93-
let expected = r#"error
99+
let expected = str![[r#"
100+
error
94101
--> <current file>:1:7
95102
|
96103
1 | こんにちは、新しいWorld!
97104
| ^^^^^^^^^^^ New world
98-
|"#;
105+
|"#]].indent(false);
99106

100107
let renderer = Renderer::plain();
101-
assert_eq!(renderer.render(snippets).to_string(), expected);
108+
assert_eq(expected, renderer.render(snippets).to_string());
102109
}
103110

104111
#[test]
105112
fn test_format_title() {
106113
let input = Level::Error.title("This is a title").id("E0001");
107114

108-
let expected = r#"error[E0001]: This is a title"#;
115+
let expected = str![r#"error[E0001]: This is a title"#];
109116
let renderer = Renderer::plain();
110-
assert_eq!(renderer.render(input).to_string(), expected);
117+
assert_eq(expected, renderer.render(input).to_string());
111118
}
112119

113120
#[test]
@@ -117,13 +124,14 @@ fn test_format_snippet_only() {
117124
.title("")
118125
.snippet(Snippet::source(source).line_start(5402));
119126

120-
let expected = r#"error
127+
let expected = str![[r#"
128+
error
121129
|
122130
5402 | This is line 1
123131
5403 | This is line 2
124-
|"#;
132+
|"#]].indent(false);
125133
let renderer = Renderer::plain();
126-
assert_eq!(renderer.render(input).to_string(), expected);
134+
assert_eq(expected, renderer.render(input).to_string());
127135
}
128136

129137
#[test]
@@ -134,17 +142,18 @@ fn test_format_snippets_continuation() {
134142
.title("")
135143
.snippet(Snippet::source(src_0).line_start(5402).origin("file1.rs"))
136144
.snippet(Snippet::source(src_1).line_start(2).origin("file2.rs"));
137-
let expected = r#"error
145+
let expected = str![[r#"
146+
error
138147
--> file1.rs
139148
|
140149
5402 | This is slice 1
141150
|
142151
::: file2.rs
143152
|
144153
2 | This is slice 2
145-
|"#;
154+
|"#]].indent(false);
146155
let renderer = Renderer::plain();
147-
assert_eq!(renderer.render(input).to_string(), expected);
156+
assert_eq(expected, renderer.render(input).to_string());
148157
}
149158

150159
#[test]
@@ -159,25 +168,27 @@ fn test_format_snippet_annotation_standalone() {
159168
.line_start(5402)
160169
.annotation(Level::Info.span(range.clone()).label("Test annotation")),
161170
);
162-
let expected = r#"error
171+
let expected = str![[r#"
172+
error
163173
|
164174
5402 | This is line 1
165175
5403 | This is line 2
166176
| -- info: Test annotation
167-
|"#;
177+
|"#]].indent(false);
168178
let renderer = Renderer::plain();
169-
assert_eq!(renderer.render(input).to_string(), expected);
179+
assert_eq(expected, renderer.render(input).to_string());
170180
}
171181

172182
#[test]
173183
fn test_format_footer_title() {
174184
let input = Level::Error
175185
.title("")
176186
.footer(Level::Error.title("This __is__ a title"));
177-
let expected = r#"error
178-
= error: This __is__ a title"#;
187+
let expected = str![[r#"
188+
error
189+
= error: This __is__ a title"#]].indent(false);
179190
let renderer = Renderer::plain();
180-
assert_eq!(renderer.render(input).to_string(), expected);
191+
assert_eq(expected, renderer.render(input).to_string());
181192
}
182193

183194
#[test]
@@ -200,13 +211,14 @@ fn test_source_content() {
200211
let input = Level::Error
201212
.title("")
202213
.snippet(Snippet::source(source).line_start(56));
203-
let expected = r#"error
214+
let expected = str![[r#"
215+
error
204216
|
205217
56 | This is an example
206218
57 | of content lines
207-
|"#;
219+
|"#]].indent(false);
208220
let renderer = Renderer::plain();
209-
assert_eq!(renderer.render(input).to_string(), expected);
221+
assert_eq(expected, renderer.render(input).to_string());
210222
}
211223

212224
#[test]
@@ -217,13 +229,14 @@ fn test_source_annotation_standalone_singleline() {
217229
.line_start(1)
218230
.annotation(Level::Help.span(0..5).label("Example string")),
219231
);
220-
let expected = r#"error
232+
let expected = str![[r#"
233+
error
221234
|
222235
1 | tests
223236
| ----- help: Example string
224-
|"#;
237+
|"#]].indent(false);
225238
let renderer = Renderer::plain();
226-
assert_eq!(renderer.render(input).to_string(), expected);
239+
assert_eq(expected, renderer.render(input).to_string());
227240
}
228241

229242
#[test]
@@ -235,27 +248,29 @@ fn test_source_annotation_standalone_multiline() {
235248
.annotation(Level::Help.span(0..5).label("Example string"))
236249
.annotation(Level::Help.span(0..5).label("Second line")),
237250
);
238-
let expected = r#"error
251+
let expected = str![[r#"
252+
error
239253
|
240254
1 | tests
241255
| ----- help: Example string
242256
| ----- help: Second line
243-
|"#;
257+
|"#]].indent(false);
244258
let renderer = Renderer::plain();
245-
assert_eq!(renderer.render(input).to_string(), expected);
259+
assert_eq(expected, renderer.render(input).to_string());
246260
}
247261

248262
#[test]
249263
fn test_only_source() {
250264
let input = Level::Error
251265
.title("")
252266
.snippet(Snippet::source("").origin("file.rs"));
253-
let expected = r#"error
267+
let expected = str![[r#"
268+
error
254269
--> file.rs
255270
|
256-
|"#;
271+
|"#]].indent(false);
257272
let renderer = Renderer::plain();
258-
assert_eq!(renderer.render(input).to_string(), expected);
273+
assert_eq(expected, renderer.render(input).to_string());
259274
}
260275

261276
#[test]
@@ -264,13 +279,14 @@ fn test_anon_lines() {
264279
let input = Level::Error
265280
.title("")
266281
.snippet(Snippet::source(source).line_start(56));
267-
let expected = r#"error
282+
let expected = str![[r#"
283+
error
268284
|
269285
LL | This is an example
270286
LL | of content lines
271287
LL |
272288
LL | abc
273-
|"#;
289+
|"#]].indent(false);
274290
let renderer = Renderer::plain().anonymized_line_numbers(true);
275-
assert_eq!(renderer.render(input).to_string(), expected);
291+
assert_eq(expected, renderer.render(input).to_string());
276292
}

0 commit comments

Comments
 (0)