fix: rest tests

This commit is contained in:
Richard Ramos 2023-02-16 16:18:15 -04:00 committed by RichΛrd
parent 9731810b8d
commit 0c1abb8114
4 changed files with 29 additions and 23 deletions

1
go.mod
View File

@ -35,6 +35,7 @@ require (
)
require (
github.com/go-chi/chi/v5 v5.0.0
github.com/lib/pq v1.10.4
github.com/waku-org/go-noise v0.0.4
)

1
go.sum
View File

@ -548,6 +548,7 @@ github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwv
github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
github.com/go-chi/chi/v5 v5.0.0 h1:DBPx88FjZJH3FsICfDAfIfnb7XxKIYVGG6lOPlhENAg=
github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs=
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=

View File

@ -8,7 +8,6 @@ import (
"sync"
"github.com/go-chi/chi/v5"
"github.com/gorilla/mux"
"github.com/waku-org/go-waku/waku/v2/node"
"github.com/waku-org/go-waku/waku/v2/protocol"
"github.com/waku-org/go-waku/waku/v2/protocol/pb"
@ -147,9 +146,8 @@ func (d *RelayService) postV1Subscriptions(w http.ResponseWriter, r *http.Reques
}
func (d *RelayService) getV1Messages(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
topic, ok := vars["topic"]
if !ok {
topic := chi.URLParam(r, "topic")
if topic == "" {
w.WriteHeader(http.StatusBadRequest)
return
}
@ -175,9 +173,8 @@ func (d *RelayService) getV1Messages(w http.ResponseWriter, r *http.Request) {
}
func (d *RelayService) postV1Message(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
topic, ok := vars["topic"]
if !ok {
topic := chi.URLParam(r, "topic")
if topic == "" {
w.WriteHeader(http.StatusBadRequest)
return
}

View File

@ -10,7 +10,7 @@ import (
"testing"
"time"
"github.com/gorilla/mux"
"github.com/go-chi/chi/v5"
"github.com/multiformats/go-multiaddr"
"github.com/stretchr/testify/require"
"github.com/waku-org/go-waku/tests"
@ -20,20 +20,20 @@ import (
"github.com/waku-org/go-waku/waku/v2/utils"
)
func makeRelayService(t *testing.T) *RelayService {
func makeRelayService(t *testing.T, mux *chi.Mux) *RelayService {
options := node.WithWakuRelayAndMinPeers(0)
n, err := node.New(options)
require.NoError(t, err)
err = n.Start(context.Background())
require.NoError(t, err)
mux := mux.NewRouter()
return NewRelayService(n, mux, 3, utils.Logger())
}
func TestPostV1Message(t *testing.T) {
d := makeRelayService(t)
router := chi.NewRouter()
_ = makeRelayService(t, router)
msg := &pb.WakuMessage{
Payload: []byte{1, 2, 3},
@ -46,13 +46,15 @@ func TestPostV1Message(t *testing.T) {
rr := httptest.NewRecorder()
req, _ := http.NewRequest(http.MethodPost, "/relay/v1/messages/test", bytes.NewReader(msgJsonBytes))
d.mux.ServeHTTP(rr, req)
router.ServeHTTP(rr, req)
require.Equal(t, http.StatusOK, rr.Code)
require.Equal(t, "true", rr.Body.String())
}
func TestRelaySubscription(t *testing.T) {
d := makeRelayService(t)
router := chi.NewRouter()
d := makeRelayService(t, router)
go d.Start(context.Background())
defer d.Stop()
@ -63,7 +65,7 @@ func TestRelaySubscription(t *testing.T) {
rr := httptest.NewRecorder()
req, _ := http.NewRequest(http.MethodPost, "/relay/v1/subscriptions", bytes.NewReader(topicsJSONBytes))
d.mux.ServeHTTP(rr, req)
router.ServeHTTP(rr, req)
require.Equal(t, http.StatusOK, rr.Code)
require.Equal(t, "true", rr.Body.String())
@ -87,7 +89,7 @@ func TestRelaySubscription(t *testing.T) {
// Test deletion
rr = httptest.NewRecorder()
req, _ = http.NewRequest(http.MethodDelete, "/relay/v1/subscriptions", bytes.NewReader(topicsJSONBytes))
d.mux.ServeHTTP(rr, req)
router.ServeHTTP(rr, req)
require.Equal(t, http.StatusOK, rr.Code)
require.Equal(t, "true", rr.Body.String())
require.Len(t, d.messages["test"], 0)
@ -95,10 +97,12 @@ func TestRelaySubscription(t *testing.T) {
}
func TestRelayGetV1Messages(t *testing.T) {
serviceA := makeRelayService(t)
router := chi.NewRouter()
serviceA := makeRelayService(t, router)
go serviceA.Start(context.Background())
defer serviceA.Stop()
serviceB := makeRelayService(t)
serviceB := makeRelayService(t, router)
go serviceB.Start(context.Background())
defer serviceB.Stop()
@ -122,7 +126,7 @@ func TestRelayGetV1Messages(t *testing.T) {
rr := httptest.NewRecorder()
req, _ := http.NewRequest(http.MethodPost, "/relay/v1/subscriptions", bytes.NewReader(topicsJSONBytes))
serviceB.mux.ServeHTTP(rr, req)
router.ServeHTTP(rr, req)
require.Equal(t, http.StatusOK, rr.Code)
// Wait for the subscription to be started
@ -139,7 +143,7 @@ func TestRelayGetV1Messages(t *testing.T) {
rr = httptest.NewRecorder()
req, _ = http.NewRequest(http.MethodPost, "/relay/v1/messages/test", bytes.NewReader(msgJsonBytes))
serviceA.mux.ServeHTTP(rr, req)
router.ServeHTTP(rr, req)
require.Equal(t, http.StatusOK, rr.Code)
// Wait for the message to be received
@ -147,7 +151,7 @@ func TestRelayGetV1Messages(t *testing.T) {
rr = httptest.NewRecorder()
req, _ = http.NewRequest(http.MethodGet, "/relay/v1/messages/test", bytes.NewReader([]byte{}))
serviceB.mux.ServeHTTP(rr, req)
router.ServeHTTP(rr, req)
require.Equal(t, http.StatusOK, rr.Code)
var messages []*pb.WakuMessage
@ -157,6 +161,9 @@ func TestRelayGetV1Messages(t *testing.T) {
rr = httptest.NewRecorder()
req, _ = http.NewRequest(http.MethodGet, "/relay/v1/messages/test", bytes.NewReader([]byte{}))
serviceA.mux.ServeHTTP(rr, req)
require.Equal(t, http.StatusNotFound, rr.Code)
router.ServeHTTP(rr, req)
err = json.Unmarshal(rr.Body.Bytes(), &messages)
require.NoError(t, err)
require.Len(t, messages, 0)
}