Files
wasmd/lcd_test/wasm_test.go
Ethan Frey 3b479c3235 Merge pull request #254 from gustavohmsilva/master
Closes #10 Implemented files called general_consts.go to all modules that heavly relied on  the duplicated "ClientID : 1"
2020-10-06 08:36:50 +02:00

81 lines
2.3 KiB
Go

package lcdtest
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"testing"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/rest"
"github.com/spf13/viper"
"github.com/stretchr/testify/require"
)
const firstCodeID = 1
func TestWasmStoreCode(t *testing.T) {
kb, err := newKeybase()
require.NoError(t, err)
addr, _, err := CreateAddr(name1, kb)
require.NoError(t, err)
cleanup, _, _, port, err := InitializeLCD(1, []types.AccAddress{addr}, true)
require.NoError(t, err)
defer cleanup()
wasmCode, err := ioutil.ReadFile("../x/wasm/internal/keeper/testdata/hackatom.wasm")
require.NoError(t, err)
var (
chainID = viper.GetString(flags.FlagChainID)
from = addr.String()
acc = getAccount(t, port, addr)
accnum = acc.GetAccountNumber()
sequence = acc.GetSequence()
gas = "1200000"
simulate = false
gasAdjustment = 1.0
)
baseReq := rest.NewBaseReq(
from, memo, chainID, gas, fmt.Sprintf("%f", gasAdjustment), accnum, sequence, fees, nil, simulate,
)
storeCodeReq := struct {
BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"`
WasmBytes []byte `json:"wasm_bytes"`
}{
BaseReq: baseReq,
WasmBytes: wasmCode,
}
req, err := cdc.MarshalJSON(storeCodeReq)
require.NoError(t, err)
// generate tx
resp, body := Request(t, port, "POST", "/wasm/code", req)
require.Equal(t, http.StatusOK, resp.StatusCode, body)
// sign and broadcast
resp, body = signAndBroadcastGenTx(t, port, name1, body, acc, gasAdjustment, simulate, kb)
require.Equal(t, http.StatusOK, resp.StatusCode, body)
var payload map[string]json.RawMessage
require.NoError(t, json.Unmarshal([]byte(body), &payload))
require.Nil(t, payload["code"], body)
// then check list view
resp, body = Request(t, port, "GET", "/wasm/code", nil)
require.Equal(t, http.StatusOK, resp.StatusCode, body)
var listPayload struct {
Height string
Result []map[string]interface{}
}
require.NoError(t, json.Unmarshal([]byte(body), &listPayload), body)
require.Len(t, listPayload.Result, 1)
// and check detail view
resp, body = Request(t, port, "GET", fmt.Sprintf("/wasm/code/%d", firstCodeID), nil)
require.Equal(t, http.StatusOK, resp.StatusCode, body)
}