@@ -345,6 +345,42 @@ void main() {
345
345
);
346
346
});
347
347
348
+ // to test _MixedBorderRadius using `add()` and `subtract()` methods
349
+ test ('resolve method throws detailed error when TextDirection is null' , () {
350
+ const BorderRadius a = BorderRadius .only (
351
+ topLeft: Radius .elliptical (10.0 , 20.0 ),
352
+ topRight: Radius .elliptical (30.0 , 40.0 ),
353
+ bottomLeft: Radius .elliptical (50.0 , 60.0 ),
354
+ );
355
+ const BorderRadiusDirectional b = BorderRadiusDirectional .only (
356
+ topEnd: Radius .elliptical (100.0 , 110.0 ),
357
+ bottomStart: Radius .elliptical (120.0 , 130.0 ),
358
+ bottomEnd: Radius .elliptical (140.0 , 150.0 ),
359
+ );
360
+
361
+ expect (
362
+ () => a.add (b).resolve (null ),
363
+ throwsA (
364
+ isFlutterError.having (
365
+ (FlutterError e) => e.message,
366
+ 'message' ,
367
+ allOf (contains ('No TextDirection found.' ), contains ('without a Directionality ancestor' )),
368
+ ),
369
+ ),
370
+ );
371
+
372
+ expect (
373
+ () => b.subtract (a).resolve (null ),
374
+ throwsA (
375
+ isFlutterError.having (
376
+ (FlutterError e) => e.message,
377
+ 'message' ,
378
+ allOf (contains ('No TextDirection found.' ), contains ('without a Directionality ancestor' )),
379
+ ),
380
+ ),
381
+ );
382
+ });
383
+
348
384
test ('BorderRadiusDirectional.lerp() invariants' , () {
349
385
final BorderRadiusDirectional a = BorderRadiusDirectional .circular (10.0 );
350
386
final BorderRadiusDirectional b = BorderRadiusDirectional .circular (20.0 );
0 commit comments