Fix #31764: Show appropriate error message when fonts pubspec.yaml isn't iterable
Show appropriate error message when fonts isn't iterable
diff --git a/packages/flutter_tools/test/flutter_manifest_test.dart b/packages/flutter_tools/test/flutter_manifest_test.dart
index b3cedf9..3bc9176 100644
--- a/packages/flutter_tools/test/flutter_manifest_test.dart
+++ b/packages/flutter_tools/test/flutter_manifest_test.dart
@@ -6,7 +6,9 @@
import 'package:file/file.dart';
import 'package:file/memory.dart';
+import 'package:flutter_tools/src/base/context.dart';
import 'package:flutter_tools/src/base/file_system.dart';
+import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/cache.dart';
import 'package:flutter_tools/src/flutter_manifest.dart';
@@ -463,6 +465,7 @@
expectedBuildNumber: null,
);
});
+
test('parses no version clause', () async {
const String manifest = '''
name: test
@@ -478,6 +481,26 @@
expectedBuildNumber: null,
);
});
+
+ // Regression test for https://github.com/flutter/flutter/issues/31764
+ testUsingContext('Returns proper error when font detail is malformed', () async {
+ final BufferLogger logger = context.get<Logger>();
+ const String manifest = '''
+name: test
+dependencies:
+ flutter:
+ sdk: flutter
+flutter:
+ fonts:
+ - family: foo
+ fonts:
+ -asset: a/bar
+''';
+ final FlutterManifest flutterManifest = FlutterManifest.createFromString(manifest);
+
+ expect(flutterManifest, null);
+ expect(logger.errorText, contains('Expected "fonts" to either be null or a list.'));
+ });
});
group('FlutterManifest with MemoryFileSystem', () {