@@ -4235,3 +4235,49 @@ error: showing how tabs are rendered
4235
4235
let renderer = renderer. decor_style ( DecorStyle :: Unicode ) ;
4236
4236
assert_data_eq ! ( renderer. render( input) , expected_unicode) ;
4237
4237
}
4238
+
4239
+ #[ test]
4240
+ fn duplicate_annotations ( ) {
4241
+ let source = r#"foobar
4242
+
4243
+ foobar 🚀
4244
+ "# ;
4245
+ let report = & [
4246
+ Group :: with_title ( Level :: WARNING . primary_title ( "whatever" ) ) . element (
4247
+ Snippet :: source ( source)
4248
+ . path ( "whatever" )
4249
+ . annotation ( AnnotationKind :: Primary . span ( 0 ..source. len ( ) ) . label ( "blah" ) )
4250
+ . annotation ( AnnotationKind :: Primary . span ( 0 ..source. len ( ) ) . label ( "blah" ) ) ,
4251
+ ) ,
4252
+ ] ;
4253
+
4254
+ let expected_ascii = str![ [ r#"
4255
+ warning: whatever
4256
+ --> whatever:1:1
4257
+ |
4258
+ 1 | / foobar
4259
+ 2 | |
4260
+ 3 | | foobar 🚀
4261
+ | | ^
4262
+ | |______________________|
4263
+ | |______________________blah
4264
+ | blah
4265
+ "# ] ] ;
4266
+ let renderer = Renderer :: plain ( ) ;
4267
+ assert_data_eq ! ( renderer. render( report) , expected_ascii) ;
4268
+
4269
+ let expected_unicode = str![ [ r#"
4270
+ warning: whatever
4271
+ ╭▸ whatever:1:1
4272
+ │
4273
+ 1 │ ┏ foobar
4274
+ 2 │ ┃
4275
+ 3 │ ┃ foobar 🚀
4276
+ │ ┃ ╿
4277
+ │ ┃━━━━━━━━━━━━━━━━━━━━━━│
4278
+ │ ┗━━━━━━━━━━━━━━━━━━━━━━blah
4279
+ ╰╴ blah
4280
+ "# ] ] ;
4281
+ let renderer = renderer. decor_style ( DecorStyle :: Unicode ) ;
4282
+ assert_data_eq ! ( renderer. render( report) , expected_unicode) ;
4283
+ }
0 commit comments