11use annotate_snippets:: { Level , Renderer , Snippet } ;
22
3+ use snapbox:: { assert_eq, str} ;
4+
35#[ test]
46fn 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 |
14171 | First line
15182 | 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 |
34391 | こんにちは、世界
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 |
53601 | おはよう
5461 | _____^
55622 | | ございます
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 |
75841 | お寿司
7685 | ^^^^^^ Sushi1
77862 | 食べたい🍣
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 |
961071 | こんにちは、新しい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]
105117fn 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 |
1221355402 | This is line 1
1231365403 | 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 |
1401555402 | 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 |
1641815402 | This is line 1
1651825403 | 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]
173191fn 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 |
20522656 | This is an example
20622757 | 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 |
2222451 | 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 |
2402651 | 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]
249275fn 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 |
269298LL | This is an example
270299LL | of content lines
271300LL |
272301LL | 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