@@ -486,19 +486,46 @@ void main() {
486
486
expect (collapsedSpans.first.attributions, isEmpty);
487
487
});
488
488
489
- test ('single continuous attribution' , () {
490
- final collapsedSpans = AttributedSpans (
489
+ group ('single continuous attribution' , () {
490
+ final spans = AttributedSpans (
491
491
attributions: [
492
492
const SpanMarker (attribution: ExpectedSpans .bold, offset: 0 , markerType: SpanMarkerType .start),
493
493
const SpanMarker (attribution: ExpectedSpans .bold, offset: 16 , markerType: SpanMarkerType .end),
494
494
],
495
- ). collapseSpans (contentLength : 16 ) ;
495
+ );
496
496
497
- expect (collapsedSpans.length, 1 );
498
- expect (collapsedSpans.first.start, 0 );
499
- expect (collapsedSpans.first.end, 16 );
500
- expect (collapsedSpans.first.attributions.length, 1 );
501
- expect (collapsedSpans.first.attributions.first, ExpectedSpans .bold);
497
+ test ('collapse at span end' , () {
498
+ final collapsedSpans = spans.collapseSpans (contentLength: 16 );
499
+
500
+ expect (collapsedSpans.length, 1 );
501
+ expect (collapsedSpans.first.start, 0 );
502
+ expect (collapsedSpans.first.end, 16 );
503
+ expect (collapsedSpans.first.attributions.length, 1 );
504
+ expect (collapsedSpans.first.attributions.first, ExpectedSpans .bold);
505
+ });
506
+
507
+ test ('collapse before span end' , () {
508
+ final collapsedSpans = spans.collapseSpans (contentLength: 10 );
509
+
510
+ expect (collapsedSpans.length, 1 );
511
+ expect (collapsedSpans.first.start, 0 );
512
+ expect (collapsedSpans.first.end, 10 );
513
+ expect (collapsedSpans.first.attributions.length, 1 );
514
+ expect (collapsedSpans.first.attributions.first, ExpectedSpans .bold);
515
+ });
516
+
517
+ test ('collapse after span end' , () {
518
+ final collapsedSpans = spans.collapseSpans (contentLength: 20 );
519
+
520
+ expect (collapsedSpans.length, 2 );
521
+ expect (collapsedSpans[0 ].start, 0 );
522
+ expect (collapsedSpans[0 ].end, 16 );
523
+ expect (collapsedSpans[0 ].attributions.length, 1 );
524
+ expect (collapsedSpans[0 ].attributions.first, ExpectedSpans .bold);
525
+ expect (collapsedSpans[1 ].start, 16 );
526
+ expect (collapsedSpans[1 ].end, 20 );
527
+ expect (collapsedSpans[1 ].attributions, isEmpty);
528
+ });
502
529
});
503
530
504
531
test ('single fractured attribution' , () {
0 commit comments