MCPcopy Create free account
hub / github.com/AssetMantle/node / TestHandler

Function TestHandler

utilities/rest/sign/handler_test.go:29–100  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

27)
28
29func TestHandler(t *testing.T) {
30 Codec := codec.NewLegacyAmino()
31 schemaCodec.RegisterLegacyAminoCodec(Codec)
32 std.RegisterLegacyAminoCodec(Codec)
33 Codec.RegisterConcrete(request{}, "request", nil)
34 Codec.RegisterConcrete(response{}, "response", nil)
35
36 handler := handler(client.Context{})
37 viper.Set(flags.FlagKeyringBackend, keyring.BackendTest)
38
39 Keyring, err := keyring.New(sdk.KeyringServiceName(), keyring.BackendTest, viper.GetString(flags.FlagHome), strings.NewReader(""))
40 require.NoError(t, err)
41
42 router := mux.NewRouter()
43 RegisterRESTRoutes(client.Context{}, router)
44
45 t.Cleanup(func() {
46 _ = Keyring.Delete("keyName1")
47 _ = Keyring.Delete("keyName2")
48 _ = Keyring.Delete("keyName3")
49 })
50 _, err = Keyring.NewAccount("keyName1", "wage thunder live sense resemble foil apple course spin horse glass mansion midnight laundry acoustic rhythm loan scale talent push green direct brick please",
51 keyring.DefaultBIP39Passphrase, sdkTypes.FullFundraiserPath, hd.Secp256k1)
52 require.Nil(t, err)
53
54 address := "cosmos1pkkayn066msg6kn33wnl5srhdt3tnu2vzasz9c"
55 var sdkAddress sdkTypes.AccAddress
56 sdkAddress, err = sdkTypes.AccAddressFromBech32(address)
57
58 // signWithout chainID
59 requestBody1, err := Codec.MarshalJSON(request{
60 BaseRequest: rest.BaseReq{From: address},
61 Type: "cosmos-sdk/StdTx",
62 StdTx: legacytx.NewStdTx([]sdkTypes.Msg{base.NewTestMessage(sdkAddress, "id")}, legacytx.NewStdFee(10, sdkTypes.NewCoins()), nil, ""),
63 })
64 require.Nil(t, err)
65 testRequest1, err := http.NewRequest("POST", "/sign", bytes.NewBuffer(requestBody1))
66 require.Nil(t, err)
67 responseRecorder := httptest.NewRecorder()
68 handler.ServeHTTP(responseRecorder, testRequest1)
69 require.Equal(t, responseRecorder.Code, http.StatusBadRequest)
70 require.Equal(t, `{"error":"Chain-ID required but not specified"}`, responseRecorder.Body.String())
71
72 // with wrong key
73 requestBody2, err := Codec.MarshalJSON(request{
74 BaseRequest: rest.BaseReq{From: "address", ChainID: "test"},
75 Type: "cosmos-sdk/StdTx",
76 StdTx: legacytx.NewStdTx([]sdkTypes.Msg{base.NewTestMessage(sdkAddress, "id")}, legacytx.NewStdFee(20, sdkTypes.NewCoins()), nil, ""),
77 })
78 require.Nil(t, err)
79 testRequest2, err := http.NewRequest("POST", "/sign", bytes.NewBuffer(requestBody2))
80 require.Nil(t, err)
81 responseRecorder = httptest.NewRecorder()
82 handler.ServeHTTP(responseRecorder, testRequest2)
83 require.Equal(t, responseRecorder.Code, http.StatusBadRequest)
84 require.Equal(t, `{"error":"The specified item could not be found in the Keyring"}`, responseRecorder.Body.String())
85
86 // RPC client offline

Callers

nothing calls this directly

Calls 2

handlerFunction · 0.70
RegisterRESTRoutesFunction · 0.70

Tested by

no test coverage detected