waku-org/go-waku

View on GitHub
waku/v2/protocol/legacy_store/pb/validation_test.go

Summary

Maintainability
A
0 mins
Test Coverage
package pb

import (
    "testing"

    "github.com/stretchr/testify/require"
)

func cf(val string) *ContentFilter {
    return &ContentFilter{
        ContentTopic: val,
    }
}

func TestValidateRequest(t *testing.T) {
    request := HistoryRPC{}
    require.ErrorIs(t, request.ValidateQuery(), errMissingRequestID)
    request.RequestId = "test"
    require.ErrorIs(t, request.ValidateQuery(), errMissingQuery)
    request.Query = &HistoryQuery{
        ContentFilters: []*ContentFilter{
            cf("1"), cf("2"), cf("3"), cf("4"), cf("5"),
            cf("6"), cf("7"), cf("8"), cf("9"), cf("10"),
            cf("11"),
        },
    }
    require.ErrorIs(t, request.ValidateQuery(), errMaxContentFilters)
    request.Query.ContentFilters = []*ContentFilter{cf("a"), cf("")}
    require.ErrorIs(t, request.ValidateQuery(), errEmptyContentTopics)
    request.Query.ContentFilters = []*ContentFilter{cf("a")}
    require.NoError(t, request.ValidateQuery())
}

func TestValidateResponse(t *testing.T) {
    response := HistoryRPC{}
    require.ErrorIs(t, response.ValidateResponse("test"), errMissingRequestID)
    response.RequestId = "test1"
    require.ErrorIs(t, response.ValidateResponse("test"), errRequestIDMismatch)
    response.RequestId = "test"
    response.Response = &HistoryResponse{}
    require.NoError(t, response.ValidateResponse("test"))
}