package stringid import "testing" func TestGenerateRandomID(t *testing.T) { id := GenerateRandomID() if len(id) != fullLen { t.Fatalf("Id returned is incorrect: %s", id) } } func TestTruncateID(t *testing.T) { tests := []struct { doc, id, expected string }{ { doc: "empty ID", id: "", expected: "", }, { // IDs are expected to be 12 (short) or 64 characters, and not be numeric only, // but TruncateID should handle these gracefully. doc: "invalid ID", id: "1234", expected: "1234", }, { doc: "full ID", id: "90435eec5c4e124e741ef731e118be2fc799a68aba0466ec17717f24ce2ae6a2", expected: "90435eec5c4e", }, { doc: "digest", id: "sha256:90435eec5c4e124e741ef731e118be2fc799a68aba0466ec17717f24ce2ae6a2", expected: "90435eec5c4e", }, { doc: "very long ID", id: "90435eec5c4e124e741ef731e118be2fc799a68aba0466ec17717f24ce2ae6a290435eec5c4e124e741ef731e118be2fc799a68aba0466ec17717f24ce2ae6a2", expected: "90435eec5c4e", }, } for _, tc := range tests { t.Run(tc.doc, func(t *testing.T) { actual := TruncateID(tc.id) if actual != tc.expected { t.Errorf("expected: %q, got: %q", tc.expected, actual) } }) } }