[builder] Allow patchset descriptions to be null
These can be null in Gerrit in some workflows. Previously, CLs with
patchsets without descriptions would always fail on the CQ.
Change-Id: Ib7ea5614abf3146474ff469eeec0d863caa1b22c
Reviewed-on: https://dart-review.googlesource.com/c/dart_ci/+/225201
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
diff --git a/builder/.gitignore b/builder/.gitignore
index 3c8a157..e6ff0e2 100644
--- a/builder/.gitignore
+++ b/builder/.gitignore
@@ -4,3 +4,7 @@
# Conventional directory for build output.
build/
+
+# Code coverage
+coverage/
+lcov.info
diff --git a/builder/lib/src/firestore.dart b/builder/lib/src/firestore.dart
index 17eb02f..e0c32f7 100644
--- a/builder/lib/src/firestore.dart
+++ b/builder/lib/src/firestore.dart
@@ -531,7 +531,7 @@
}
Future<void> storePatchset(String review, int patchset, String kind,
- String description, int patchsetGroup, int number) async {
+ String? description, int patchsetGroup, int number) async {
final document = Document()
..name = '$documents/reviews/$review/patchsets/$patchset'
..fields = taggedMap({
diff --git a/builder/test/fakes.dart b/builder/test/fakes.dart
index 2f11824..0d8e5b6 100644
--- a/builder/test/fakes.dart
+++ b/builder/test/fakes.dart
@@ -209,6 +209,19 @@
@override
Future<bool> reviewIsLanded(int review) =>
Future.value(commits.values.any((commit) => commit[fReview] == review));
+
+ @override
+ Future<bool> hasPatchset(String review, String patchset) async => false;
+
+ @override
+ Future<bool> hasReview(String review) async => false;
+
+ @override
+ Future<void> storeReview(String review, Map<String, Value> data) async {}
+
+ @override
+ Future<void> storePatchset(String review, int patchset, String kind,
+ String? description, int patchsetGroup, int number) async {}
}
class HttpClientMock extends BaseClient {
diff --git a/builder/test/firestore_test.dart b/builder/test/firestore_test.dart
index 3c9add7..0ca42fa 100644
--- a/builder/test/firestore_test.dart
+++ b/builder/test/firestore_test.dart
@@ -117,7 +117,7 @@
testReview.toString(),
2,
'REWORK',
- 'change',
+ null,
2,
2,
);
diff --git a/builder/test/gerrit_test.dart b/builder/test/gerrit_test.dart
index 9aaf399..cf2951c 100644
--- a/builder/test/gerrit_test.dart
+++ b/builder/test/gerrit_test.dart
@@ -7,6 +7,7 @@
import 'package:test/test.dart';
import 'package:builder/src/gerrit_change.dart';
+import 'fakes.dart';
import 'gerrit_review_json.dart';
void main() async {
@@ -14,4 +15,11 @@
expect(GerritInfo.revert(json.decode(revertReviewGerritLog)),
'7ed1690b4ed6b56bc818173dff41a7a2530991a2');
});
+
+ test('update', () async {
+ final httpClientMock = HttpClientMock()
+ ..addDefaultResponse('${GerritInfo.prefix}$revertReviewGerritLog');
+ final gerrit = GerritInfo(123, 4, FirestoreServiceFake(), httpClientMock);
+ await gerrit.update();
+ });
}