package gateway import ( "github.com/42wim/matterbridge/bridge" "github.com/42wim/matterbridge/bridge/config" "github.com/stretchr/testify/assert" "testing" ) func TestIgnoreEvent(t *testing.T) { eventTests := map[string]struct { input string dest *bridge.Bridge output bool }{ "avatar mattermost": { input: config.EventAvatarDownload, dest: &bridge.Bridge{Protocol: "mattermost"}, output: false, }, "avatar slack": { input: config.EventAvatarDownload, dest: &bridge.Bridge{Protocol: "slack"}, output: true, }, "avatar telegram": { input: config.EventAvatarDownload, dest: &bridge.Bridge{Protocol: "telegram"}, output: false, }, } gw := &Gateway{} for testname, testcase := range eventTests { output := gw.ignoreEvent(testcase.input, testcase.dest) assert.Equalf(t, testcase.output, output, "case '%s' failed", testname) } } func TestExtractNick(t *testing.T) { eventTests := map[string]struct { search string extract string username string text string resultUsername string resultText string }{ "test1": { search: "fromgitter", extract: "<(.*?)>\\s+", username: "fromgitter", text: " blahblah", resultUsername: "userx", resultText: "blahblah", }, "test2": { search: "<.*?bot>", //extract: `\((.*?)\)\s+`, extract: "\\((.*?)\\)\\s+", username: "", text: "(userx) blahblah (abc) test", resultUsername: "userx", resultText: "blahblah (abc) test", }, } // gw := &Gateway{} for testname, testcase := range eventTests { resultUsername, resultText, _ := extractNick(testcase.search, testcase.extract, testcase.username, testcase.text) assert.Equalf(t, testcase.resultUsername, resultUsername, "case '%s' failed", testname) assert.Equalf(t, testcase.resultText, resultText, "case '%s' failed", testname) } }