diff --git a/packages/flutter/test/animation/animation_sheet_test.dart b/packages/flutter/test/animation/animation_sheet_test.dart
index 0d60746..df48b9e 100644
--- a/packages/flutter/test/animation/animation_sheet_test.dart
+++ b/packages/flutter/test/animation/animation_sheet_test.dart
@@ -11,6 +11,7 @@
 
 import 'package:flutter/material.dart';
 import 'package:flutter_test/flutter_test.dart';
+import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
 
 
 void main() {
@@ -19,7 +20,25 @@
    * because [matchesGoldenFile] does not use Skia Gold in its native package.
    */
 
-  testWidgets('correctly records frames using collate', (WidgetTester tester) async {
+  testWidgetsWithLeakTracking('recording disposes images',
+  (WidgetTester tester) async {
+    final AnimationSheetBuilder builder = AnimationSheetBuilder(frameSize: _DecuplePixels.size);
+
+    await tester.pumpFrames(
+      builder.record(
+        const _DecuplePixels(Duration(seconds: 1)),
+      ),
+      const Duration(milliseconds: 200),
+      const Duration(milliseconds: 100),
+    );
+  },
+    skip: isBrowser, // [intended] https://github.com/flutter/flutter/issues/56001
+    // TODO(polina-c): remove after fixing https://github.com/flutter/flutter/issues/133071
+    leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true),
+  );
+
+  testWidgetsWithLeakTracking('correctly records frames using collate',
+  (WidgetTester tester) async {
     final AnimationSheetBuilder builder = AnimationSheetBuilder(frameSize: _DecuplePixels.size);
 
     await tester.pumpFrames(
@@ -53,10 +72,15 @@
       image,
       matchesGoldenFile('test.animation_sheet_builder.collate.png'),
     );
-    image.dispose();
-  }, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
 
-  testWidgets('use allLayers to record out-of-subtree contents', (WidgetTester tester) async {
+    image.dispose();
+  },
+    skip: isBrowser, // [intended] https://github.com/flutter/flutter/issues/56001
+    // TODO(polina-c): remove after fixing https://github.com/flutter/flutter/issues/133071
+    leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true),
+  ); // https://github.com/flutter/flutter/issues/56001
+
+  testWidgetsWithLeakTracking('use allLayers to record out-of-subtree contents', (WidgetTester tester) async {
     final AnimationSheetBuilder builder = AnimationSheetBuilder(
       frameSize: const Size(8, 2),
       allLayers: true,
@@ -88,7 +112,11 @@
       matchesGoldenFile('test.animation_sheet_builder.out_of_tree.png'),
     );
     image.dispose();
-  }, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
+  },
+    skip: isBrowser, // [intended] https://github.com/flutter/flutter/issues/56001
+    // TODO(polina-c): remove after fixing https://github.com/flutter/flutter/issues/133071
+    leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true),
+  );
 }
 
 // An animation of a yellow pixel moving from left to right, in a container of
diff --git a/packages/flutter/test/animation/live_binding_test.dart b/packages/flutter/test/animation/live_binding_test.dart
index e0d523f..5959c66 100644
--- a/packages/flutter/test/animation/live_binding_test.dart
+++ b/packages/flutter/test/animation/live_binding_test.dart
@@ -79,7 +79,7 @@
     // Currently skipped due to daily flake: https://github.com/flutter/flutter/issues/87588
   }, skip: true); // Typically skip: isBrowser https://github.com/flutter/flutter/issues/42767
 
-  testWidgets('Should show event indicator for pointer events with setSurfaceSize', (WidgetTester tester) async {
+  testWidgetsWithLeakTracking('Should show event indicator for pointer events with setSurfaceSize', (WidgetTester tester) async {
     final AnimationSheetBuilder animationSheet = AnimationSheetBuilder(frameSize: const Size(200, 200), allLayers: true);
     final List<Offset> taps = <Offset>[];
     Widget target({bool recording = true}) => Container(
@@ -138,5 +138,9 @@
       matchesGoldenFile('LiveBinding.press.animation.2.png'),
     );
     image.dispose();
-  }, skip: isBrowser); // https://github.com/flutter/flutter/issues/56001
+  },
+    skip: isBrowser, // [intended] https://github.com/flutter/flutter/issues/56001
+    // TODO(polina-c): remove after fixing https://github.com/flutter/flutter/issues/133071
+    leakTrackingTestConfig: const LeakTrackingTestConfig(allowAllNotDisposed: true),
+  );
 }
diff --git a/packages/flutter/test/material/date_range_picker_test.dart b/packages/flutter/test/material/date_range_picker_test.dart
index 021a85b..6bd0e10 100644
--- a/packages/flutter/test/material/date_range_picker_test.dart
+++ b/packages/flutter/test/material/date_range_picker_test.dart
@@ -255,12 +255,13 @@
       await tester.tap(find.text('Cancel'));
       await tester.pumpAndSettle();
     },
-    // TODO(polina-c): remove after resolving
-    // https://github.com/flutter/flutter/issues/130354
-    leakTrackingTestConfig: const LeakTrackingTestConfig(
-      allowAllNotGCed: true,
-      allowAllNotDisposed: true,
-    ));
+      // TODO(polina-c): remove after resolving
+      // https://github.com/flutter/flutter/issues/130354
+      leakTrackingTestConfig: const LeakTrackingTestConfig(
+        allowAllNotGCed: true,
+        allowAllNotDisposed: true,
+      ),
+    );
   });
 
   testWidgets('Save and help text is used', (WidgetTester tester) async {
diff --git a/packages/flutter/test/material/text_selection_theme_test.dart b/packages/flutter/test/material/text_selection_theme_test.dart
index ecd0850..947df64 100644
--- a/packages/flutter/test/material/text_selection_theme_test.dart
+++ b/packages/flutter/test/material/text_selection_theme_test.dart
@@ -106,18 +106,19 @@
     final RenderBox handle = tester.firstRenderObject<RenderBox>(find.byType(CustomPaint));
     expect(handle, paints..path(color: defaultSelectionHandleColor));
   },
-  // TODO(polina-c): remove after fixing
-  // https://github.com/flutter/flutter/issues/130469
-  leakTrackingTestConfig: const LeakTrackingTestConfig(
-    notDisposedAllowList: <String, int?>{
-      'ValueNotifier<MagnifierInfo>': 1,
-      'ValueNotifier<_OverlayEntryWidgetState?>': 2,
-      'ValueNotifier<bool>': 2,
-      '_InputBorderGap': 1,
-    },
-    // TODO(polina-c): investigate notGCed, if it does not disappear after fixing notDisposed.
-    allowAllNotGCed: true,
-  ));
+    // TODO(polina-c): remove after fixing
+    // https://github.com/flutter/flutter/issues/130469
+    leakTrackingTestConfig: const LeakTrackingTestConfig(
+      notDisposedAllowList: <String, int?>{
+        'ValueNotifier<MagnifierInfo>': 1,
+        'ValueNotifier<_OverlayEntryWidgetState?>': 2,
+        'ValueNotifier<bool>': 2,
+        '_InputBorderGap': 1,
+      },
+      // TODO(polina-c): investigate notGCed, if it does not disappear after fixing notDisposed.
+      allowAllNotGCed: true,
+    ),
+  );
 
   testWidgetsWithLeakTracking('Material3 - Empty textSelectionTheme will use defaults', (WidgetTester tester) async {
     final ThemeData theme = ThemeData(useMaterial3: true);
@@ -167,18 +168,19 @@
     final RenderBox handle = tester.firstRenderObject<RenderBox>(find.byType(CustomPaint));
     expect(handle, paints..path(color: defaultSelectionHandleColor));
   },
-  // TODO(polina-c): remove after fixing
-  // https://github.com/flutter/flutter/issues/130469
-  leakTrackingTestConfig: const LeakTrackingTestConfig(
-    notDisposedAllowList: <String, int?>{
-      'ValueNotifier<MagnifierInfo>': 1,
-      'ValueNotifier<_OverlayEntryWidgetState?>': 2,
-      'ValueNotifier<bool>': 2,
-      '_InputBorderGap': 1,
-    },
-    // TODO(polina-c): investigate notGCed, if it does not disappear after fixing notDisposed.
-    allowAllNotGCed: true,
-  ));
+    // TODO(polina-c): remove after fixing
+    // https://github.com/flutter/flutter/issues/130469
+    leakTrackingTestConfig: const LeakTrackingTestConfig(
+      notDisposedAllowList: <String, int?>{
+        'ValueNotifier<MagnifierInfo>': 1,
+        'ValueNotifier<_OverlayEntryWidgetState?>': 2,
+        'ValueNotifier<bool>': 2,
+        '_InputBorderGap': 1,
+      },
+      // TODO(polina-c): investigate notGCed, if it does not disappear after fixing notDisposed.
+      allowAllNotGCed: true,
+    ),
+  );
 
   testWidgets('ThemeData.textSelectionTheme will be used if provided', (WidgetTester tester) async {
     const TextSelectionThemeData textSelectionTheme = TextSelectionThemeData(
