account for the oxford comma

This commit is contained in:
Shreyas Goenka 2024-09-27 13:36:22 +02:00
parent e22ba75062
commit 367048bde5
No known key found for this signature in database
GPG Key ID: 92A07DF49CCB0622
2 changed files with 39 additions and 4 deletions

View File

@ -112,10 +112,12 @@ func buildTrailer(diags diag.Diagnostics) string {
parts = append(parts, color.BlueString(pluralize(recommendations, "recommendation", "recommendations")))
}
switch {
case len(parts) >= 2:
case len(parts) >= 3:
first := strings.Join(parts[:len(parts)-1], ", ")
last := parts[len(parts)-1]
return fmt.Sprintf("Found %s and %s", first, last)
return fmt.Sprintf("Found %s, and %s", first, last)
case len(parts) == 2:
return fmt.Sprintf("Found %s and %s", parts[0], parts[1])
case len(parts) == 1:
return fmt.Sprintf("Found %s", parts[0])
default:

View File

@ -149,7 +149,40 @@ func TestRenderTextOutput(t *testing.T) {
"Name: test-bundle\n" +
"Target: test-target\n" +
"\n" +
"Found 2 errors, 1 warning and 1 recommendation\n",
"Found 2 errors, 1 warning, and 1 recommendation\n",
},
{
name: "bundle during 'load' and 1 error and 1 warning",
bundle: loadingBundle,
diags: diag.Diagnostics{
diag.Diagnostic{
Severity: diag.Error,
Summary: "error (1)",
Detail: "detail (1)",
Locations: []dyn.Location{{File: "foo.py", Line: 1, Column: 1}},
},
diag.Diagnostic{
Severity: diag.Warning,
Summary: "warning (2)",
Detail: "detail (2)",
Locations: []dyn.Location{{File: "foo.py", Line: 2, Column: 1}},
},
},
opts: RenderOptions{RenderSummaryTable: true},
expected: "Error: error (1)\n" +
" in foo.py:1:1\n" +
"\n" +
"detail (1)\n" +
"\n" +
"Warning: warning (2)\n" +
" in foo.py:2:1\n" +
"\n" +
"detail (2)\n" +
"\n" +
"Name: test-bundle\n" +
"Target: test-target\n" +
"\n" +
"Found 1 error and 1 warning\n",
},
{
name: "bundle during 'load' and 1 errors, 2 warning and 2 recommendations with details",
@ -215,7 +248,7 @@ func TestRenderTextOutput(t *testing.T) {
"Name: test-bundle\n" +
"Target: test-target\n" +
"\n" +
"Found 1 error, 2 warnings and 2 recommendations\n",
"Found 1 error, 2 warnings, and 2 recommendations\n",
},
{
name: "bundle during 'init'",