[analyzer] fix `require_trailing_commas` for assertions

Fixes #48605

Change-Id: I62b449b326827e6f289d90f96d8d7658d28d0615
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237694
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_trailing_comma.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_trailing_comma.dart
index 4da7cda..1b4aed0 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_trailing_comma.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_trailing_comma.dart
@@ -25,16 +25,20 @@
   Future<void> compute(ChangeBuilder builder) async {
     final node = this.node;
     if (node is ArgumentList) {
-      await builder.addDartFileEdit(file, (builder) {
-        builder.addSimpleInsertion(node.arguments.last.end, ',');
-      });
+      await _insertComma(builder, node.arguments.last);
     } else if (node is FormalParameterList) {
-      await builder.addDartFileEdit(file, (builder) {
-        builder.addSimpleInsertion(node.parameters.last.end, ',');
-      });
+      await _insertComma(builder, node.parameters.last);
+    } else if (node is Assertion) {
+      await _insertComma(builder, node.message ?? node.condition);
     }
   }
 
+  Future<void> _insertComma(ChangeBuilder builder, AstNode lastNode) async {
+    await builder.addDartFileEdit(file, (builder) {
+      builder.addSimpleInsertion(lastNode.end, ',');
+    });
+  }
+
   /// Return an instance of this class. Used as a tear-off in `FixProcessor`.
   static AddTrailingComma newInstance() => AddTrailingComma();
 }
diff --git a/pkg/analysis_server/test/src/services/correction/fix/add_trailing_comma_test.dart b/pkg/analysis_server/test/src/services/correction/fix/add_trailing_comma_test.dart
index fe27f30..474e1d8 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/add_trailing_comma_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/add_trailing_comma_test.dart
@@ -72,6 +72,36 @@
   @override
   String get lintCode => LintNames.require_trailing_commas;
 
+  Future<void> test_assert_initializer() async {
+    await resolveTestCode('''
+class C {
+  C(a) : assert(a,
+    '');
+}
+''');
+    await assertHasFix('''
+class C {
+  C(a) : assert(a,
+    '',);
+}
+''');
+  }
+
+  Future<void> test_assert_statement() async {
+    await resolveTestCode('''
+void f(a, b) {
+  assert(a ||
+    b);
+}
+''');
+    await assertHasFix('''
+void f(a, b) {
+  assert(a ||
+    b,);
+}
+''');
+  }
+
   Future<void> test_named() async {
     await resolveTestCode('''
 void f({a, b}) {