mirror of
https://github.com/BaaRai/ARTEX.git
synced 2026-11-13 11:40:53 +08:00
Merge pull request #170 from BaaRai/fix/notify-overflow-count
notify: report hidden asset count in overflow suffix
This commit is contained in:
+2
-2
@@ -149,7 +149,7 @@ func byteSize(s string) int { return len(s) }
|
||||
func runeSize(s string) int { return utf8.RuneCountInString(s) }
|
||||
|
||||
// assetLine renders an asset list into one line of display text; when there are
|
||||
// more than limit assets, the rest are omitted and the total is noted. A
|
||||
// more than limit assets, the rest are omitted and their count is noted. A
|
||||
// vulnerability can be anchored to dozens of assets, and listing them all would
|
||||
// blow up the message.
|
||||
func assetLine(assets []string, limit int) string {
|
||||
@@ -159,7 +159,7 @@ func assetLine(assets []string, limit int) string {
|
||||
if limit <= 0 || len(assets) <= limit {
|
||||
return strings.Join(assets, ", ")
|
||||
}
|
||||
return strings.Join(assets[:limit], ", ") + " and " + itoa(len(assets)) + " more"
|
||||
return strings.Join(assets[:limit], ", ") + " and " + itoa(len(assets)-limit) + " more"
|
||||
}
|
||||
|
||||
// itoa is a short alias for strconv.Itoa, used only for assembling display text,
|
||||
|
||||
@@ -113,11 +113,13 @@ func TestAssetLineOmitsExcess(t *testing.T) {
|
||||
if got := assetLine([]string{"a", "b"}, 3); got != "a, b" {
|
||||
t.Fatalf("within the limit everything should be listed, got %q", got)
|
||||
}
|
||||
// Over the limit the total must be noted, otherwise readers cannot tell how
|
||||
// many assets were left out.
|
||||
got := assetLine([]string{"a", "b", "c", "d", "e"}, 2)
|
||||
if !strings.Contains(got, "and 5 more") {
|
||||
t.Fatalf("the total of 5 should be noted, got %q", got)
|
||||
// Over the limit the number of omitted assets must be noted, otherwise
|
||||
// readers cannot tell how many assets were left out.
|
||||
if got := assetLine([]string{"a", "b", "c", "d", "e"}, 2); got != "a, b and 3 more" {
|
||||
t.Fatalf("5 assets with limit 2 should note the 3 omitted, got %q", got)
|
||||
}
|
||||
if got := assetLine([]string{"a", "b", "c", "d", "e", "f", "g", "h"}, 3); got != "a, b, c and 5 more" {
|
||||
t.Fatalf("8 assets with limit 3 should note the 5 omitted, got %q", got)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user