[flutter_tools] Don't stringify null values in EventPrinter (#76579)

This commit is contained in:
Jia Hao 2021-02-24 09:06:04 +08:00 committed by GitHub
parent 2d0fa57cbc
commit a341da6e0e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 8 deletions

View File

@ -22,7 +22,7 @@ class EventPrinter extends TestWatcher {
@override
void handleStartedDevice(Uri observatoryUri) {
_sendEvent('test.startedProcess',
<String, dynamic>{'observatoryUri': observatoryUri.toString()});
<String, dynamic>{'observatoryUri': observatoryUri?.toString()});
_parent?.handleStartedDevice(observatoryUri);
}

View File

@ -11,15 +11,48 @@ import 'package:mockito/mockito.dart';
import '../../src/common.dart';
void main() {
testWithoutContext('EventPrinter handles a null parent', () {
final EventPrinter eventPrinter = EventPrinter(out: StringBuffer());
final _Device device = _Device();
group(EventPrinter, () {
final Uri observatoryUri = Uri.parse('http://localhost:1234');
EventPrinter eventPrinter;
StringBuffer output;
expect(() => eventPrinter.handleFinishedTest(device), returnsNormally);
expect(() => eventPrinter.handleStartedDevice(observatoryUri), returnsNormally);
expect(() => eventPrinter.handleTestCrashed(device), returnsNormally);
expect(() => eventPrinter.handleTestTimedOut(device), returnsNormally);
setUp(() {
output = StringBuffer();
eventPrinter = EventPrinter(out: output);
});
testWithoutContext('handles a null parent', () {
final _Device device = _Device();
expect(() => eventPrinter.handleFinishedTest(device), returnsNormally);
expect(() => eventPrinter.handleStartedDevice(observatoryUri), returnsNormally);
expect(() => eventPrinter.handleTestCrashed(device), returnsNormally);
expect(() => eventPrinter.handleTestTimedOut(device), returnsNormally);
});
group('handleStartedDevice', () {
testWithoutContext('with non-null observatory', () {
eventPrinter.handleStartedDevice(observatoryUri);
expect(
output.toString(),
'\n'
'[{"event":"test.startedProcess","params":{"observatoryUri":"http://localhost:1234"}}]'
'\n',
);
});
testWithoutContext('with null observatory', () {
eventPrinter.handleStartedDevice(null);
expect(
output.toString(),
'\n'
'[{"event":"test.startedProcess","params":{"observatoryUri":null}}]'
'\n',
);
});
});
});
}