cosmos-sdk/x/accounts/internal/implementation/api_builder_test.go
Marko 0d3f4a82d4
feat(x/accounts): add event emission to accounts module (#19636)
Co-authored-by: sontrinh16 <trinhleson2000@gmail.com>
2024-03-05 11:23:15 +00:00

40 lines
985 B
Go

package implementation
import (
"context"
"testing"
"github.com/cosmos/gogoproto/types"
"github.com/stretchr/testify/require"
)
func TestRouterDoubleRegistration(t *testing.T) {
router := NewExecuteBuilder()
RegisterExecuteHandler(router, func(_ context.Context, req *types.StringValue) (*types.StringValue, error) {
return nil, nil
})
RegisterExecuteHandler(router, func(_ context.Context, req *types.StringValue) (*types.StringValue, error) {
return nil, nil
})
_, err := router.makeHandler()
require.ErrorContains(t, err, "already registered")
}
func TestEmptyQueryExecuteHandler(t *testing.T) {
qr := NewQueryBuilder()
er := NewExecuteBuilder()
qh, err := qr.makeHandler()
require.NoError(t, err)
eh, err := er.makeHandler()
require.NoError(t, err)
ctx := context.Background()
_, err = qh(ctx, &types.StringValue{})
require.ErrorIs(t, err, errNoExecuteHandler)
_, err = eh(ctx, &types.StringValue{})
require.ErrorIs(t, err, errNoExecuteHandler)
}