Drop usage of waitFor (dart-lang/pubspec_parse#114)

diff --git a/pkgs/pubspec_parse/test/dependency_test.dart b/pkgs/pubspec_parse/test/dependency_test.dart
index 71b148c..f1e4f57 100644
--- a/pkgs/pubspec_parse/test/dependency_test.dart
+++ b/pkgs/pubspec_parse/test/dependency_test.dart
@@ -70,21 +70,21 @@
 }
 
 void _hostedDependency() {
-  test('null', () {
-    final dep = _dependency<HostedDependency>(null);
+  test('null', () async {
+    final dep = await _dependency<HostedDependency>(null);
     expect(dep.version.toString(), 'any');
     expect(dep.hosted, isNull);
     expect(dep.toString(), 'HostedDependency: any');
   });
 
-  test('empty map', () {
-    final dep = _dependency<HostedDependency>({});
+  test('empty map', () async {
+    final dep = await _dependency<HostedDependency>({});
     expect(dep.hosted, isNull);
     expect(dep.toString(), 'HostedDependency: any');
   });
 
-  test('string version', () {
-    final dep = _dependency<HostedDependency>('^1.0.0');
+  test('string version', () async {
+    final dep = await _dependency<HostedDependency>('^1.0.0');
     expect(dep.version.toString(), '^1.0.0');
     expect(dep.hosted, isNull);
     expect(dep.toString(), 'HostedDependency: ^1.0.0');
@@ -102,15 +102,15 @@
     );
   });
 
-  test('map w/ just version', () {
-    final dep = _dependency<HostedDependency>({'version': '^1.0.0'});
+  test('map w/ just version', () async {
+    final dep = await _dependency<HostedDependency>({'version': '^1.0.0'});
     expect(dep.version.toString(), '^1.0.0');
     expect(dep.hosted, isNull);
     expect(dep.toString(), 'HostedDependency: ^1.0.0');
   });
 
-  test('map w/ version and hosted as Map', () {
-    final dep = _dependency<HostedDependency>({
+  test('map w/ version and hosted as Map', () async {
+    final dep = await _dependency<HostedDependency>({
       'version': '^1.0.0',
       'hosted': {'name': 'hosted_name', 'url': 'https://hosted_url'},
     });
@@ -120,8 +120,8 @@
     expect(dep.toString(), 'HostedDependency: ^1.0.0');
   });
 
-  test('map /w hosted as a map without name', () {
-    final dep = _dependency<HostedDependency>(
+  test('map /w hosted as a map without name', () async {
+    final dep = await _dependency<HostedDependency>(
       {
         'version': '^1.0.0',
         'hosted': {'url': 'https://hosted_url'},
@@ -166,8 +166,8 @@
     );
   });
 
-  test('map w/ version and hosted as String', () {
-    final dep = _dependency<HostedDependency>(
+  test('map w/ version and hosted as String', () async {
+    final dep = await _dependency<HostedDependency>(
       {'version': '^1.0.0', 'hosted': 'hosted_url'},
       skipTryPub: true, // todo: Unskip once put supports this
     );
@@ -178,8 +178,8 @@
     expect(dep.toString(), 'HostedDependency: ^1.0.0');
   });
 
-  test('map w/ hosted as String', () {
-    final dep = _dependency<HostedDependency>({'hosted': 'hosted_url'});
+  test('map w/ hosted as String', () async {
+    final dep = await _dependency<HostedDependency>({'hosted': 'hosted_url'});
     expect(dep.version, VersionConstraint.any);
     expect(dep.hosted!.declaredName, isNull);
     expect(dep.hosted!.name, 'dep');
@@ -199,8 +199,8 @@
     );
   });
 
-  test('map w/ null version is fine', () {
-    final dep = _dependency<HostedDependency>({'version': null});
+  test('map w/ null version is fine', () async {
+    final dep = await _dependency<HostedDependency>({'version': null});
     expect(dep.version, VersionConstraint.any);
     expect(dep.hosted, isNull);
     expect(dep.toString(), 'HostedDependency: any');
@@ -208,15 +208,15 @@
 }
 
 void _sdkDependency() {
-  test('without version', () {
-    final dep = _dependency<SdkDependency>({'sdk': 'flutter'});
+  test('without version', () async {
+    final dep = await _dependency<SdkDependency>({'sdk': 'flutter'});
     expect(dep.sdk, 'flutter');
     expect(dep.version, VersionConstraint.any);
     expect(dep.toString(), 'SdkDependency: flutter');
   });
 
-  test('with version', () {
-    final dep = _dependency<SdkDependency>(
+  test('with version', () async {
+    final dep = await _dependency<SdkDependency>(
       {'sdk': 'flutter', 'version': '>=1.2.3 <2.0.0'},
     );
     expect(dep.sdk, 'flutter');
@@ -240,29 +240,30 @@
 }
 
 void _gitDependency() {
-  test('string', () {
-    final dep = _dependency<GitDependency>({'git': 'url'});
+  test('string', () async {
+    final dep = await _dependency<GitDependency>({'git': 'url'});
     expect(dep.url.toString(), 'url');
     expect(dep.path, isNull);
     expect(dep.ref, isNull);
     expect(dep.toString(), 'GitDependency: url@url');
   });
 
-  test('string with version key is ignored', () {
+  test('string with version key is ignored', () async {
     // Regression test for https://github.com/dart-lang/pubspec_parse/issues/13
-    final dep = _dependency<GitDependency>({'git': 'url', 'version': '^1.2.3'});
+    final dep =
+        await _dependency<GitDependency>({'git': 'url', 'version': '^1.2.3'});
     expect(dep.url.toString(), 'url');
     expect(dep.path, isNull);
     expect(dep.ref, isNull);
     expect(dep.toString(), 'GitDependency: url@url');
   });
 
-  test('string with user@ URL', () {
+  test('string with user@ URL', () async {
     final skipTryParse = Platform.environment.containsKey('TRAVIS');
     if (skipTryParse) {
       print('FYI: not validating git@ URI on travis due to failure');
     }
-    final dep = _dependency<GitDependency>(
+    final dep = await _dependency<GitDependency>(
       {'git': 'git@localhost:dep.git'},
       skipTryPub: skipTryParse,
     );
@@ -284,8 +285,8 @@
     );
   });
 
-  test('map', () {
-    final dep = _dependency<GitDependency>({
+  test('map', () async {
+    final dep = await _dependency<GitDependency>({
       'git': {'url': 'url', 'path': 'path', 'ref': 'ref'},
     });
     expect(dep.url.toString(), 'url');
@@ -349,15 +350,16 @@
 }
 
 void _pathDependency() {
-  test('valid', () {
-    final dep = _dependency<PathDependency>({'path': '../path'});
+  test('valid', () async {
+    final dep = await _dependency<PathDependency>({'path': '../path'});
     expect(dep.path, '../path');
     expect(dep.toString(), 'PathDependency: path@../path');
   });
 
-  test('valid with version key is ignored', () {
-    final dep =
-        _dependency<PathDependency>({'path': '../path', 'version': '^1.2.3'});
+  test('valid with version key is ignored', () async {
+    final dep = await _dependency<PathDependency>(
+      {'path': '../path', 'version': '^1.2.3'},
+    );
     expect(dep.path, '../path');
     expect(dep.toString(), 'PathDependency: path@../path');
   });
@@ -423,11 +425,11 @@
   );
 }
 
-T _dependency<T extends Dependency>(
+Future<T> _dependency<T extends Dependency>(
   Object? content, {
   bool skipTryPub = false,
-}) {
-  final value = parse(
+}) async {
+  final value = await parse(
     {
       ...defaultPubspec,
       'dependencies': {'dep': content},
diff --git a/pkgs/pubspec_parse/test/parse_test.dart b/pkgs/pubspec_parse/test/parse_test.dart
index 99199c7..31042f1 100644
--- a/pkgs/pubspec_parse/test/parse_test.dart
+++ b/pkgs/pubspec_parse/test/parse_test.dart
@@ -11,8 +11,8 @@
 import 'test_utils.dart';
 
 void main() {
-  test('minimal set values', () {
-    final value = parse(defaultPubspec);
+  test('minimal set values', () async {
+    final value = await parse(defaultPubspec);
     expect(value.name, 'sample');
     expect(value.version, isNull);
     expect(value.publishTo, isNull);
@@ -34,10 +34,10 @@
     expect(value.screenshots, isEmpty);
   });
 
-  test('all fields set', () {
+  test('all fields set', () async {
     final version = Version.parse('1.2.3');
     final sdkConstraint = VersionConstraint.parse('>=2.12.0 <3.0.0');
-    final value = parse({
+    final value = await parse({
       'name': 'sample',
       'version': version.toString(),
       'publish_to': 'none',
@@ -84,8 +84,8 @@
     expect(value.screenshots!.first.path, 'path/to/screenshot');
   });
 
-  test('environment values can be null', () {
-    final value = parse(
+  test('environment values can be null', () async {
+    final value = await parse(
       {
         'name': 'sample',
         'environment': {
@@ -137,8 +137,8 @@
       'https': 'https://example.com',
       'none': 'none',
     }.entries) {
-      test('can be ${entry.key}', () {
-        final value = parse({
+      test('can be ${entry.key}', () async {
+        final value = await parse({
           ...defaultPubspec,
           'publish_to': entry.value,
         });
@@ -148,8 +148,8 @@
   });
 
   group('author, authors', () {
-    test('one author', () {
-      final value = parse({
+    test('one author', () async {
+      final value = await parse({
         ...defaultPubspec,
         'author': 'name@example.com',
       });
@@ -157,8 +157,8 @@
       expect(value.authors, ['name@example.com']);
     });
 
-    test('one author, via authors', () {
-      final value = parse({
+    test('one author, via authors', () async {
+      final value = await parse({
         ...defaultPubspec,
         'authors': ['name@example.com'],
       });
@@ -166,8 +166,8 @@
       expect(value.authors, ['name@example.com']);
     });
 
-    test('many authors', () {
-      final value = parse({
+    test('many authors', () async {
+      final value = await parse({
         ...defaultPubspec,
         'authors': ['name@example.com', 'name2@example.com'],
       });
@@ -175,8 +175,8 @@
       expect(value.authors, ['name@example.com', 'name2@example.com']);
     });
 
-    test('author and authors', () {
-      final value = parse({
+    test('author and authors', () async {
+      final value = await parse({
         ...defaultPubspec,
         'author': 'name@example.com',
         'authors': ['name2@example.com'],
@@ -185,8 +185,8 @@
       expect(value.authors, ['name@example.com', 'name2@example.com']);
     });
 
-    test('duplicate author values', () {
-      final value = parse({
+    test('duplicate author values', () async {
+      final value = await parse({
         ...defaultPubspec,
         'author': 'name@example.com',
         'authors': ['name@example.com', 'name@example.com'],
@@ -195,8 +195,8 @@
       expect(value.authors, ['name@example.com']);
     });
 
-    test('flutter', () {
-      final value = parse({
+    test('flutter', () async {
+      final value = await parse({
         ...defaultPubspec,
         'flutter': {'key': 'value'},
       });
@@ -411,8 +411,8 @@
       );
     });
 
-    test('invalid data - lenient', () {
-      final value = parse(
+    test('invalid data - lenient', () async {
+      final value = await parse(
         {
           ...defaultPubspec,
           'topics': [1],
@@ -426,8 +426,8 @@
   });
 
   group('screenshots', () {
-    test('one screenshot', () {
-      final value = parse({
+    test('one screenshot', () async {
+      final value = await parse({
         ...defaultPubspec,
         'screenshots': [
           {'description': 'my screenshot', 'path': 'path/to/screenshot'},
@@ -438,8 +438,8 @@
       expect(value.screenshots!.first.path, 'path/to/screenshot');
     });
 
-    test('many screenshots', () {
-      final value = parse({
+    test('many screenshots', () async {
+      final value = await parse({
         ...defaultPubspec,
         'screenshots': [
           {'description': 'my screenshot', 'path': 'path/to/screenshot'},
@@ -456,8 +456,8 @@
       expect(value.screenshots!.last.path, 'path/to/screenshot2');
     });
 
-    test('one screenshot plus invalid entries', () {
-      final value = parse({
+    test('one screenshot plus invalid entries', () async {
+      final value = await parse({
         ...defaultPubspec,
         'screenshots': [
           42,
@@ -474,8 +474,8 @@
       expect(value.screenshots!.first.path, 'path/to/screenshot');
     });
 
-    test('invalid entries', () {
-      final value = parse({
+    test('invalid entries', () async {
+      final value = await parse({
         ...defaultPubspec,
         'screenshots': [
           42,
@@ -566,8 +566,8 @@
       );
     });
 
-    test('invalid screenshot - lenient', () {
-      final value = parse(
+    test('invalid screenshot - lenient', () async {
+      final value = await parse(
         {
           ...defaultPubspec,
           'screenshots': 'Invalid value',
@@ -614,8 +614,8 @@
       );
     });
 
-    test('bad repository url', () {
-      final value = parse(
+    test('bad repository url', () async {
+      final value = await parse(
         {
           ...defaultPubspec,
           'repository': {'x': 'y'},
@@ -626,8 +626,8 @@
       expect(value.repository, isNull);
     });
 
-    test('bad issue_tracker url', () {
-      final value = parse(
+    test('bad issue_tracker url', () async {
+      final value = await parse(
         {
           ...defaultPubspec,
           'issue_tracker': {'x': 'y'},
@@ -638,8 +638,8 @@
       expect(value.issueTracker, isNull);
     });
 
-    test('multiple bad values', () {
-      final value = parse(
+    test('multiple bad values', () async {
+      final value = await parse(
         {
           ...defaultPubspec,
           'repository': {'x': 'y'},
diff --git a/pkgs/pubspec_parse/test/test_utils.dart b/pkgs/pubspec_parse/test/test_utils.dart
index b573851..cc46522 100644
--- a/pkgs/pubspec_parse/test/test_utils.dart
+++ b/pkgs/pubspec_parse/test/test_utils.dart
@@ -2,8 +2,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// ignore: deprecated_member_use
-import 'dart:cli';
 import 'dart:convert';
 
 import 'package:checked_yaml/checked_yaml.dart';
@@ -61,18 +59,18 @@
   }
 }
 
-Pubspec parse(
+Future<Pubspec> parse(
   Object? content, {
   bool quietOnError = false,
   bool skipTryPub = false,
   bool lenient = false,
-}) {
+}) async {
   final encoded = _encodeJson(content);
 
   ProcResult? pubResult;
   if (!skipTryPub) {
     // ignore: deprecated_member_use
-    pubResult = waitFor(tryPub(encoded));
+    pubResult = await tryPub(encoded);
     expect(pubResult, isNotNull);
   }