Handle special characters in event names #1

Merged
layla merged 1 commits from bugfix/specialChars into main 2023-06-10 10:24:58 +02:00
2 changed files with 36 additions and 0 deletions

View File

@ -22,6 +22,10 @@ func GenerateEventChannelName(eventName string, location string, dateTime time.T
city := GetCityFromLocation(location)
year := dateTime.Year()
// Remove special characters
eventName = regexp.MustCompile(`[^a-zA-Z0-9 ]+`).ReplaceAllString(eventName, "")
eventName = strings.Trim(eventName, " ")
channel := fmt.Sprint(month, "-", day, city, "-", eventName, "-", year)
channel = strings.ReplaceAll(channel, " ", "-")
channel = strings.ToLower(channel)

32
core/channel_test.go Normal file
View File

@ -0,0 +1,32 @@
package core
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestGenerateEventChannelName(t *testing.T) {
assert := assert.New(t)
// Test Valid Address
channelName := GenerateEventChannelName("Hello World", "1234 Place Rd, Ann Arbor, MI 00000", time.Date(2022, time.January, 5, 0, 0, 0, 0, time.UTC))
assert.Equal("jan-5-ann-arbor-hello-world-2022", channelName)
// Test Unparsable
// lmanley: Note it'd be nice to expand support for this
channelName = GenerateEventChannelName("Hello World", "Michigan Theater, Ann Arbor", time.Date(2022, time.January, 5, 0, 0, 0, 0, time.UTC))
assert.Equal("jan-5-hello-world-2022", channelName)
// Test Short Location
channelName = GenerateEventChannelName("Hello World", "Monroe, MI", time.Date(2022, time.January, 5, 0, 0, 0, 0, time.UTC))
assert.Equal("jan-5-monroe-hello-world-2022", channelName)
// Test Remote Event
channelName = GenerateEventChannelName("Hello World", RemoteLocation, time.Date(2022, time.January, 5, 0, 0, 0, 0, time.UTC))
assert.Equal("jan-5-online-hello-world-2022", channelName)
channelName = GenerateEventChannelName("Hangout :)", "Quickly Livonia", time.Date(2022, time.January, 5, 0, 0, 0, 0, time.UTC))
assert.Equal("jan-5-quickly-livonia-hangout-2022", channelName)
}