client_test.go 838 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package client_test
  2. import (
  3. "github.com/stretchr/testify/require"
  4. "heckel.io/ntfy/client"
  5. "heckel.io/ntfy/server"
  6. "net/http"
  7. "testing"
  8. "time"
  9. )
  10. func TestClient_Publish(t *testing.T) {
  11. s := startTestServer(t)
  12. defer s.Stop()
  13. c := client.New(newTestConfig())
  14. time.Sleep(time.Second) // FIXME Wait for port up
  15. _, err := c.Publish("mytopic", "some message")
  16. require.Nil(t, err)
  17. }
  18. func newTestConfig() *client.Config {
  19. c := client.NewConfig()
  20. c.DefaultHost = "http://127.0.0.1:12345"
  21. return c
  22. }
  23. func startTestServer(t *testing.T) *server.Server {
  24. conf := server.NewConfig()
  25. conf.ListenHTTP = ":12345"
  26. s, err := server.New(conf)
  27. if err != nil {
  28. t.Fatal(err)
  29. }
  30. go func() {
  31. if err := s.Run(); err != nil && err != http.ErrServerClosed {
  32. panic(err) // 'go vet' complains about 't.Fatal(err)'
  33. }
  34. }()
  35. return s
  36. }