43 lines
838 B
Go
43 lines
838 B
Go
package client_test
|
|
|
|
import (
|
|
"github.com/stretchr/testify/require"
|
|
"heckel.io/ntfy/client"
|
|
"heckel.io/ntfy/server"
|
|
"net/http"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestClient_Publish(t *testing.T) {
|
|
s := startTestServer(t)
|
|
defer s.Stop()
|
|
c := client.New(newTestConfig())
|
|
|
|
time.Sleep(time.Second) // FIXME Wait for port up
|
|
|
|
_, err := c.Publish("mytopic", "some message")
|
|
require.Nil(t, err)
|
|
}
|
|
|
|
func newTestConfig() *client.Config {
|
|
c := client.NewConfig()
|
|
c.DefaultHost = "http://127.0.0.1:12345"
|
|
return c
|
|
}
|
|
|
|
func startTestServer(t *testing.T) *server.Server {
|
|
conf := server.NewConfig()
|
|
conf.ListenHTTP = ":12345"
|
|
s, err := server.New(conf)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
go func() {
|
|
if err := s.Run(); err != nil && err != http.ErrServerClosed {
|
|
panic(err) // 'go vet' complains about 't.Fatal(err)'
|
|
}
|
|
}()
|
|
return s
|
|
}
|