This repository has been archived on 2024-04-06. You can view files and clone it, but cannot push or open issues or pull requests.
core-old/internal/msg/consumer_ennoblement_test.go
Dawid Wysokiński 0f0e0cd3ee
All checks were successful
continuous-integration/drone/push Build is passing
feat(msg): add logger to consumers (#40)
Reviewed-on: twhelp/core#40
2022-08-21 07:11:28 +00:00

53 lines
1.3 KiB
Go

package msg_test
import (
"context"
"testing"
"time"
"github.com/ThreeDotsLabs/watermill"
"gitea.dwysokinski.me/twhelp/core/internal/domain"
"gitea.dwysokinski.me/twhelp/core/internal/msg"
"gitea.dwysokinski.me/twhelp/core/internal/msg/internal/mock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestEnnoblementConsumer_refresh(t *testing.T) {
t.Parallel()
marshaler := msg.GobMarshaler{}
pubSub := newPubSub(t)
ennoblementSvc := &mock.FakeEnnoblementService{}
ennoblementSvc.RefreshReturns(nil)
waitMiddleware, wait := newWaitForHandlerMiddleware("EnnoblementConsumer.refresh")
runRouter(
t,
waitMiddleware,
msg.NewEnnoblementConsumer(marshaler, pubSub, pubSub, watermill.NopLogger{}, ennoblementSvc),
)
payload := domain.RefreshEnnoblementsCmdPayload{
Key: "pl151",
URL: "https://pl151.plemiona.pl",
VersionCode: "pl",
}
require.NoError(t, msg.NewEnnoblementPublisher(pubSub, marshaler).
CmdRefresh(context.Background(), payload))
select {
case <-wait:
case <-time.After(time.Second):
t.Fatal("timeout")
}
require.Equal(t, 1, ennoblementSvc.RefreshCallCount())
_, serverKey, serverURL := ennoblementSvc.RefreshArgsForCall(0)
assert.Equal(t, payload.Key, serverKey)
assert.Equal(t, payload.URL, serverURL)
}