forked from lug/matterbridge
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package bslack
 | |
| 
 | |
| import (
 | |
| 	"io/ioutil"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/42wim/matterbridge/bridge"
 | |
| 	"github.com/sirupsen/logrus"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestExtractTopicOrPurpose(t *testing.T) {
 | |
| 	testcases := map[string]struct {
 | |
| 		input          string
 | |
| 		wantChangeType string
 | |
| 		wantOutput     string
 | |
| 	}{
 | |
| 		"success - topic type":   {"@someone set channel topic: foo bar", "topic", "foo bar"},
 | |
| 		"success - purpose type": {"@someone set channel purpose: foo bar", "purpose", "foo bar"},
 | |
| 		"success - one line":     {"@someone set channel topic: foo bar", "topic", "foo bar"},
 | |
| 		"success - multi-line":   {"@someone set channel topic: foo\nbar", "topic", "foo\nbar"},
 | |
| 		"success - cleared":      {"@someone cleared channel topic", "topic", ""},
 | |
| 		"error - unhandled":      {"some unmatched message", "unknown", ""},
 | |
| 	}
 | |
| 
 | |
| 	logger := logrus.New()
 | |
| 	logger.SetOutput(ioutil.Discard)
 | |
| 	cfg := &bridge.Config{Bridge: &bridge.Bridge{Log: logrus.NewEntry(logger)}}
 | |
| 	b := newBridge(cfg)
 | |
| 	for name, tc := range testcases {
 | |
| 		gotChangeType, gotOutput := b.extractTopicOrPurpose(tc.input)
 | |
| 
 | |
| 		assert.Equalf(t, tc.wantChangeType, gotChangeType, "This testcase failed: %s", name)
 | |
| 		assert.Equalf(t, tc.wantOutput, gotOutput, "This testcase failed: %s", name)
 | |
| 	}
 | |
| }
 | 
