diff --git a/tests/rpc/rpc_00_test.go b/tests/rpc/rpc_00_test.go index 8dcbbc85a8..9015508ec1 100644 --- a/tests/rpc/rpc_00_test.go +++ b/tests/rpc/rpc_00_test.go @@ -5,11 +5,9 @@ package rpc import ( "context" - "reflect" - "testing" + "fmt" "github.com/ChainSafe/gossamer/tests/utils/rpc" - "github.com/stretchr/testify/require" ) var ( @@ -24,22 +22,18 @@ type testCase struct { skip bool } -func getResponse(ctx context.Context, t *testing.T, test *testCase) interface{} { - if test.skip { - t.Skip("RPC endpoint not yet implemented") - return nil - } - +func getResponse(ctx context.Context, method, params string, target interface{}) (err error) { const currentPort = "8540" endpoint := rpc.NewEndpoint(currentPort) - respBody, err := rpc.Post(ctx, endpoint, test.method, test.params) - require.NoError(t, err) - - target := reflect.New(reflect.TypeOf(test.expected)).Interface() - err = rpc.Decode(respBody, target) - require.NoError(t, err) + respBody, err := rpc.Post(ctx, endpoint, method, params) + if err != nil { + return fmt.Errorf("cannot RPC post: %w", err) + } - require.NotNil(t, target) + err = rpc.Decode(respBody, &target) + if err != nil { + return fmt.Errorf("cannot decode RPC response: %w", err) + } - return target + return nil } diff --git a/tests/rpc/rpc_01-system_test.go b/tests/rpc/rpc_01-system_test.go index f4439add50..e0a289d8b6 100644 --- a/tests/rpc/rpc_01-system_test.go +++ b/tests/rpc/rpc_01-system_test.go @@ -5,6 +5,7 @@ package rpc import ( "context" + "reflect" "testing" "time" @@ -102,9 +103,15 @@ func TestSystemRPC(t *testing.T) { for _, test := range testCases { t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } + getResponseCtx, getResponseCancel := context.WithTimeout(ctx, time.Second) defer getResponseCancel() - target := getResponse(getResponseCtx, t, test) + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) switch v := target.(type) { case *modules.SystemHealthResponse: diff --git a/tests/rpc/rpc_02-author_test.go b/tests/rpc/rpc_02-author_test.go index 7c1cac0e89..c67c59a3f6 100644 --- a/tests/rpc/rpc_02-author_test.go +++ b/tests/rpc/rpc_02-author_test.go @@ -7,6 +7,7 @@ import ( "bytes" "context" "fmt" + "reflect" "testing" "time" @@ -143,9 +144,15 @@ func TestAuthorRPC(t *testing.T) { for _, test := range testCases { t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } + getResponseCtx, getResponseCancel := context.WithTimeout(ctx, time.Second) defer getResponseCancel() - _ = getResponse(getResponseCtx, t, test) + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) }) } } diff --git a/tests/rpc/rpc_03-chain_test.go b/tests/rpc/rpc_03-chain_test.go index b54e968d72..0fc8433bb5 100644 --- a/tests/rpc/rpc_03-chain_test.go +++ b/tests/rpc/rpc_03-chain_test.go @@ -6,6 +6,7 @@ package rpc import ( "context" "log" + "reflect" "testing" "time" @@ -71,8 +72,10 @@ func TestChainRPC(t *testing.T) { chainBlockHeaderHash := "" for _, test := range testCases { - t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } // set params for chain_getBlock from previous chain_getHeader call if chainBlockHeaderHash != "" { @@ -81,7 +84,10 @@ func TestChainRPC(t *testing.T) { getResponseCtx, getResponseCancel := context.WithTimeout(ctx, time.Second) defer getResponseCancel() - target := getResponse(getResponseCtx, t, test) + + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) switch v := target.(type) { case *modules.ChainBlockHeaderResponse: diff --git a/tests/rpc/rpc_04-offchain_test.go b/tests/rpc/rpc_04-offchain_test.go index 2d40f73943..02bcd2578e 100644 --- a/tests/rpc/rpc_04-offchain_test.go +++ b/tests/rpc/rpc_04-offchain_test.go @@ -5,6 +5,7 @@ package rpc import ( "context" + "reflect" "testing" "time" @@ -12,6 +13,7 @@ import ( "github.com/ChainSafe/gossamer/tests/utils" "github.com/ChainSafe/gossamer/tests/utils/config" "github.com/ChainSafe/gossamer/tests/utils/node" + "github.com/stretchr/testify/require" ) func TestOffchainRPC(t *testing.T) { @@ -49,9 +51,16 @@ func TestOffchainRPC(t *testing.T) { for _, test := range testCases { t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } + getResponseCtx, getResponseCancel := context.WithTimeout(ctx, time.Second) defer getResponseCancel() - _ = getResponse(getResponseCtx, t, test) + + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) }) } } diff --git a/tests/rpc/rpc_05-state_test.go b/tests/rpc/rpc_05-state_test.go index 73b1fa3dbe..e2b5876f1c 100644 --- a/tests/rpc/rpc_05-state_test.go +++ b/tests/rpc/rpc_05-state_test.go @@ -6,6 +6,7 @@ package rpc import ( "context" "fmt" + "reflect" "testing" "time" @@ -121,9 +122,16 @@ func TestStateRPCResponseValidation(t *testing.T) { for _, test := range testCases { t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } + getResponseCtx, getResponseCancel := context.WithTimeout(ctx, time.Second) defer getResponseCancel() - _ = getResponse(getResponseCtx, t, test) + + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) }) } diff --git a/tests/rpc/rpc_06-engine_test.go b/tests/rpc/rpc_06-engine_test.go index 8f40384209..38e659891d 100644 --- a/tests/rpc/rpc_06-engine_test.go +++ b/tests/rpc/rpc_06-engine_test.go @@ -5,6 +5,7 @@ package rpc import ( "context" + "reflect" "testing" "time" @@ -12,6 +13,7 @@ import ( "github.com/ChainSafe/gossamer/tests/utils" "github.com/ChainSafe/gossamer/tests/utils/config" "github.com/ChainSafe/gossamer/tests/utils/node" + "github.com/stretchr/testify/require" ) func TestEngineRPC(t *testing.T) { @@ -44,9 +46,16 @@ func TestEngineRPC(t *testing.T) { for _, test := range testCases { t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } + getResponseCtx, getResponseCancel := context.WithTimeout(ctx, time.Second) defer getResponseCancel() - _ = getResponse(getResponseCtx, t, test) + + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) }) } } diff --git a/tests/rpc/rpc_07-payment_test.go b/tests/rpc/rpc_07-payment_test.go index c644cb0522..56056f8592 100644 --- a/tests/rpc/rpc_07-payment_test.go +++ b/tests/rpc/rpc_07-payment_test.go @@ -5,6 +5,7 @@ package rpc import ( "context" + "reflect" "testing" "time" @@ -12,6 +13,7 @@ import ( "github.com/ChainSafe/gossamer/tests/utils" "github.com/ChainSafe/gossamer/tests/utils/config" "github.com/ChainSafe/gossamer/tests/utils/node" + "github.com/stretchr/testify/require" ) func TestPaymentRPC(t *testing.T) { @@ -39,9 +41,16 @@ func TestPaymentRPC(t *testing.T) { for _, test := range testCases { t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } + getResponseCtx, getResponseCancel := context.WithTimeout(ctx, time.Second) defer getResponseCancel() - _ = getResponse(getResponseCtx, t, test) + + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) }) } } diff --git a/tests/rpc/rpc_08-contracts_test.go b/tests/rpc/rpc_08-contracts_test.go index f91eabdd3f..a8d00a6c59 100644 --- a/tests/rpc/rpc_08-contracts_test.go +++ b/tests/rpc/rpc_08-contracts_test.go @@ -5,6 +5,7 @@ package rpc import ( "context" + "reflect" "testing" "time" @@ -12,6 +13,7 @@ import ( "github.com/ChainSafe/gossamer/tests/utils" "github.com/ChainSafe/gossamer/tests/utils/config" "github.com/ChainSafe/gossamer/tests/utils/node" + "github.com/stretchr/testify/require" ) func TestContractsRPC(t *testing.T) { @@ -44,9 +46,16 @@ func TestContractsRPC(t *testing.T) { for _, test := range testCases { t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } + getResponseCtx, getResponseCancel := context.WithTimeout(ctx, time.Second) defer getResponseCancel() - _ = getResponse(getResponseCtx, t, test) + + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) }) } } diff --git a/tests/rpc/rpc_09-babe_test.go b/tests/rpc/rpc_09-babe_test.go index 0605229fe2..a0e36e4747 100644 --- a/tests/rpc/rpc_09-babe_test.go +++ b/tests/rpc/rpc_09-babe_test.go @@ -5,6 +5,7 @@ package rpc import ( "context" + "reflect" "testing" "time" @@ -12,6 +13,7 @@ import ( "github.com/ChainSafe/gossamer/tests/utils" "github.com/ChainSafe/gossamer/tests/utils/config" "github.com/ChainSafe/gossamer/tests/utils/node" + "github.com/stretchr/testify/require" ) func TestBabeRPC(t *testing.T) { @@ -39,9 +41,16 @@ func TestBabeRPC(t *testing.T) { for _, test := range testCases { t.Run(test.description, func(t *testing.T) { + if test.skip { + t.SkipNow() + } + getResponseCtx, cancel := context.WithTimeout(ctx, time.Second) defer cancel() - _ = getResponse(getResponseCtx, t, test) + + target := reflect.New(reflect.TypeOf(test.expected)).Interface() + err := getResponse(getResponseCtx, test.method, test.params, target) + require.NoError(t, err) }) } }