diff --git a/.tool-versions b/.tool-versions
index 9b45878e1..3876cc312 100644
--- a/.tool-versions
+++ b/.tool-versions
@@ -1 +1 @@
-flutter 3.13.9-stable
+flutter 3.16.0-stable
diff --git a/packages/app_center/test/fonts/Ubuntu-Regular.ttf b/packages/app_center/test/fonts/Ubuntu-Regular.ttf
new file mode 100644
index 000000000..f98a2dab8
Binary files /dev/null and b/packages/app_center/test/fonts/Ubuntu-Regular.ttf differ
diff --git a/packages/app_center/test/snap_page_test.dart b/packages/app_center/test/snap_page_test.dart
index 7fcf8ca7e..a531c5cfa 100644
--- a/packages/app_center/test/snap_page_test.dart
+++ b/packages/app_center/test/snap_page_test.dart
@@ -131,10 +131,15 @@ void main() {
     await tester.tap(find.byIcon(Icons.thumb_down_outlined));
     verify(ratingsModel.castVote(VoteStatus.down)).called(1);
 
-    await tester.tap(find.byIcon(YaruIcons.view_more_horizontal));
+    final viewMoreButton = find.byIcon(YaruIcons.view_more_horizontal);
+    expect(viewMoreButton, findsOneWidget);
+    await tester.tap(viewMoreButton);
     await tester.pump();
 
-    await tester.tap(find.text(tester.l10n.snapActionRemoveLabel));
+    final removeButton = find.text(tester.l10n.snapActionRemoveLabel);
+    expect(removeButton, findsOneWidget);
+    await tester.tap(removeButton);
+    await tester.pump();
     verify(snapModel.remove()).called(1);
 
     expect(find.text(tester.l10n.snapActionUpdateLabel), findsNothing);
@@ -181,13 +186,18 @@ void main() {
     await tester.tap(find.byIcon(Icons.thumb_down_outlined));
     verify(ratingsModel.castVote(VoteStatus.down)).called(1);
 
-    await tester.tap(find.byIcon(YaruIcons.view_more_horizontal));
+    final viewMoreButton = find.byIcon(YaruIcons.view_more_horizontal);
+    expect(viewMoreButton, findsOneWidget);
+    await tester.tap(viewMoreButton);
     await tester.pump();
 
+    final updateButton = find.text(tester.l10n.snapActionUpdateLabel);
+    expect(updateButton, findsOneWidget);
+
     await tester.tap(find.text(tester.l10n.snapActionRemoveLabel));
+    await tester.pump();
     verify(snapModel.remove()).called(1);
 
-    expect(find.text(tester.l10n.snapActionUpdateLabel), findsOneWidget);
     final l10n = tester.l10n;
     expect(find.text(tester.l10n.snapRatingsVotes(snapRating.totalVotes)),
         findsOneWidget);
@@ -258,11 +268,17 @@ void main() {
 
     await tester.tap(find.text(tester.l10n.snapActionOpenLabel));
     verify(snapLauncher.open()).called(1);
+    await tester.pump();
 
-    await tester.tap(find.byIcon(YaruIcons.view_more_horizontal));
+    final findMoreButton = find.byIcon(YaruIcons.view_more_horizontal);
+    expect(findMoreButton, findsOneWidget);
+    await tester.tap(findMoreButton);
     await tester.pump();
 
-    await tester.tap(find.text(tester.l10n.snapActionRemoveLabel));
+    final removeButton = find.text(tester.l10n.snapActionRemoveLabel);
+    expect(removeButton, findsOneWidget);
+    await tester.tap(removeButton);
+    await tester.pump();
     verify(snapModel.remove()).called(1);
 
     expect(find.text(tester.l10n.snapActionUpdateLabel), findsNothing);
diff --git a/packages/app_center/test/test_utils.dart b/packages/app_center/test/test_utils.dart
index ede772a0e..78584c80c 100644
--- a/packages/app_center/test/test_utils.dart
+++ b/packages/app_center/test/test_utils.dart
@@ -1,4 +1,5 @@
 import 'dart:async';
+import 'dart:io';
 
 import 'package:app_center/appstream.dart';
 import 'package:app_center/l10n.dart';
@@ -11,6 +12,7 @@ import 'package:app_center_ratings_client/ratings_client.dart';
 import 'package:appstream/appstream.dart';
 import 'package:collection/collection.dart';
 import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
 import 'package:flutter_riverpod/flutter_riverpod.dart';
 import 'package:flutter_test/flutter_test.dart';
 import 'package:gtk/gtk.dart';
@@ -24,11 +26,23 @@ import 'test_utils.mocks.dart';
 extension WidgetTesterX on WidgetTester {
   BuildContext get context => element(find.byType(Scaffold).first);
   AppLocalizations get l10n => AppLocalizations.of(context);
-  Future<void> pumpApp(WidgetBuilder builder) {
-    return pumpWidget(MaterialApp(
-      localizationsDelegates: localizationsDelegates,
-      home: Scaffold(body: Builder(builder: builder)),
-    ));
+  Future<void> pumpApp(WidgetBuilder builder) async {
+    // The intended minimum size of the window.
+    view.physicalSize =
+        (Size(800, 600) + Offset(54, 54)) * view.devicePixelRatio;
+    final ubuntuRegular = File('test/fonts/Ubuntu-Regular.ttf');
+    final content = ByteData.view(
+        Uint8List.fromList(ubuntuRegular.readAsBytesSync()).buffer);
+    final fontLoader = FontLoader('UbuntuRegular')
+      ..addFont(Future.value(content));
+    await fontLoader.load();
+    return pumpWidget(
+      MaterialApp(
+        theme: ThemeData(fontFamily: 'UbuntuRegular'),
+        localizationsDelegates: localizationsDelegates,
+        home: Scaffold(body: Builder(builder: builder)),
+      ),
+    );
   }
 }