Browse Source

Single alias generation func

Vova Tkach 6 years ago
parent
commit
90041ad472
2 changed files with 19 additions and 0 deletions
  1. 11 0
      utils/utils.go
  2. 8 0
      utils/utils_test.go

+ 11 - 0
utils/utils.go

@@ -266,6 +266,17 @@ func GenerateAlias(str string) string {
 	return alias
 }
 
+func GenerateSingleAlias(str string) string {
+	alias := GenerateAlias(str)
+	if len(alias) > 1 && alias[0] == '/' {
+		alias = alias[1:]
+	}
+	if len(alias) > 1 && alias[len(alias)-1] == '/' {
+		alias = alias[:len(alias)-1]
+	}
+	return alias
+}
+
 func UnixTimestampToMySqlDateTime(sec int64) string {
 	return time.Unix(sec, 0).Format("2006-01-02 15:04:05")
 }

+ 8 - 0
utils/utils_test.go

@@ -182,6 +182,14 @@ func TestGenerateAlias(t *testing.T) {
 	Expect(t, GenerateAlias("Какая-то страница 2"), "/kakayato-stranica-2/")
 }
 
+func TestGenerateSingleAlias(t *testing.T) {
+	Expect(t, GenerateSingleAlias(""), "")
+	Expect(t, GenerateSingleAlias("Some category name"), "some-category-name")
+	Expect(t, GenerateSingleAlias("Some category name 2"), "some-category-name-2")
+	Expect(t, GenerateSingleAlias("Какая-то категория"), "kakayato-kategoriya")
+	Expect(t, GenerateSingleAlias("Какая-то категория 2"), "kakayato-kategoriya-2")
+}
+
 func TestUnixTimestampToMySqlDateTime(t *testing.T) {
 	Expect(t, UnixTimestampToMySqlDateTime(1551741275), "2019-03-05 01:14:35")
 }