5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-03 04:29:35 +08:00
wails/v2/internal/subsystem/event_test.go
2020-10-09 10:33:11 +11:00

51 lines
953 B
Go

package subsystem
import (
"os"
"sync"
"testing"
"github.com/matryer/is"
"github.com/wailsapp/wails/v2/internal/logger"
"github.com/wailsapp/wails/v2/internal/messagedispatcher/message"
"github.com/wailsapp/wails/v2/internal/servicebus"
)
func TestSingleTopic(t *testing.T) {
is := is.New(t)
var expected string = "I am a message!"
var actual string
var wg sync.WaitGroup
// Create new bus
myLogger := logger.New(os.Stdout)
myLogger.SetLogLevel(logger.TRACE)
bus := servicebus.New(myLogger)
eventSubsystem, _ := NewEvent(bus, myLogger)
eventSubsystem.Start()
eventSubsystem.RegisterListener("test", func(data ...interface{}) {
is.Equal(len(data), 1)
actual = data[0].(string)
wg.Done()
})
wg.Add(1)
eventMessage := &message.EventMessage{
Name: "test",
Data: []interface{}{"I am a message!"},
}
bus.Start()
bus.Publish("event:test:from:j", eventMessage)
wg.Wait()
bus.Stop()
is.Equal(actual, expected)
}