From afc40702e22f41b4c0209e1719b961f5b8795a3a Mon Sep 17 00:00:00 2001 From: Roy Crihfield Date: Tue, 5 Sep 2023 19:37:45 +0800 Subject: [PATCH] test improvements handle request errors rm cruft test logging cleanup test script --- .github/workflows/test.yml | 41 ++++---- Makefile | 2 +- .../vulcanize/registry/v1beta1/registry.proto | 8 +- .../sdk_tests/{Dockerfile-sdk => Dockerfile} | 0 tests/sdk_tests/build-laconicd-container.sh | 3 +- tests/sdk_tests/build-sdk-test-container.sh | 3 +- tests/sdk_tests/docker-compose-auctions.yml | 31 ------ .../sdk_tests/docker-compose-nameservice.yml | 31 ------ tests/sdk_tests/docker-compose.yml | 9 +- tests/sdk_tests/run-auction-tests.sh | 16 ---- .../sdk_tests/run-nameservice-expiry-tests.sh | 16 ---- tests/sdk_tests/run-tests.sh | 22 +++-- testutil/network/network.go | 1 + x/registry/client/cli/tx.go | 4 - x/registry/client/testutil/grpc.go | 91 ++++++++---------- x/registry/client/testutil/query.go | 3 - x/registry/client/testutil/tx.go | 96 ++++++------------- x/registry/keeper/keeper.go | 4 +- x/registry/keeper/msg_server.go | 12 +-- 19 files changed, 122 insertions(+), 271 deletions(-) rename tests/sdk_tests/{Dockerfile-sdk => Dockerfile} (100%) delete mode 100644 tests/sdk_tests/docker-compose-auctions.yml delete mode 100644 tests/sdk_tests/docker-compose-nameservice.yml delete mode 100755 tests/sdk_tests/run-auction-tests.sh delete mode 100755 tests/sdk_tests/run-nameservice-expiry-tests.sh diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 37167aa4..da59cd8c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -94,39 +94,34 @@ jobs: ref: jest_timeout - name: Environment run: ls -tlh && env - - name: build containers scripts + - name: Build containers scripts working-directory: tests/sdk_tests run: ./build-laconicd-container.sh && ./build-sdk-test-container.sh - - name: start containers + + - name: Start containers working-directory: tests/sdk_tests run: docker compose up -d - - name: run-tests.sh + - name: Run tests working-directory: tests/sdk_tests run: ./run-tests.sh - - name: reset containers for auction tests + + - name: Start auction containers working-directory: tests/sdk_tests - if: always() - run: docker compose down - - name: start auction containers + env: + TEST_AUCTION_ENABLED: true + run: docker compose up -d + - name: Run auction tests working-directory: tests/sdk_tests - run: docker compose -f docker-compose-auctions.yml up -d - - name: run-acution-tests.sh + run: ./run-tests.sh test:auctions + + - name: Start auction containers working-directory: tests/sdk_tests - run: ./run-auction-tests.sh - - name: reset containers for nameservice tests + env: + TEST_REGISTRY_EXPIRY: true + run: docker compose up -d + - name: Run nameservice expiry tests working-directory: tests/sdk_tests - if: always() - run: docker compose -f docker-compose-auctions.yml down - - name: start auction containers - working-directory: tests/sdk_tests - run: docker compose -f docker-compose-nameservice.yml up -d - - name: run-nameservice-expiry-tests.sh - working-directory: tests/sdk_tests - run: ./run-nameservice-expiry-tests.sh - - name: reset containers for nameservice tests - working-directory: tests/sdk_tests - if: always() - run: docker compose -f docker-compose-nameservice.yml down + run: ./run-tests.sh test:nameservice-expiry # integration_tests: # runs-on: ubuntu-latest diff --git a/Makefile b/Makefile index bda401f7..c487280a 100644 --- a/Makefile +++ b/Makefile @@ -316,7 +316,7 @@ TEST_TARGETS := test-unit test-unit-cover test-race # Test runs-specific rules. To add a new test target, just add # a new rule, customise ARGS or TEST_PACKAGES ad libitum, and # append the new rule to the TEST_TARGETS list. -test-unit: ARGS=-timeout=10m -race +test-unit: ARGS=-timeout=10m -race -test.v test-unit: TEST_PACKAGES=$(PACKAGES_UNIT) test-race: ARGS=-race diff --git a/proto/vulcanize/registry/v1beta1/registry.proto b/proto/vulcanize/registry/v1beta1/registry.proto index 2c0e2804..93cea79a 100644 --- a/proto/vulcanize/registry/v1beta1/registry.proto +++ b/proto/vulcanize/registry/v1beta1/registry.proto @@ -56,7 +56,7 @@ message Params { ]; } -// Params defines the registry module records +// Record defines a registry record message Record { string id = 1 [(gogoproto.moretags) = "json:\"id\" yaml:\"id\""]; string bond_id = 2 [(gogoproto.moretags) = "json:\"bondId\" yaml:\"bondId\""]; @@ -69,7 +69,7 @@ message Record { string type = 9 [(gogoproto.moretags) = "json:\"types\" yaml:\"types\""]; } -// AuthorityEntry defines the registry module AuthorityEntries +// AuthorityEntry defines a registry authority message AuthorityEntry { string name = 1; NameAuthority entry = 2; @@ -99,7 +99,7 @@ message NameEntry { NameRecord entry = 2; } -// NameRecord +// NameRecord defines a versioned name record message NameRecord { NameRecordEntry latest = 1; repeated NameRecordEntry history = 2; @@ -131,4 +131,4 @@ message BlockChangeSet { message AuctionBidInfo { string auction_id = 1 [(gogoproto.moretags) = "json:\"auctionID\" yaml:\"auctionID\""]; string bidder_address = 2 [(gogoproto.moretags) = "json:\"bidderAddress\" yaml:\"bidderAddress\""]; -} \ No newline at end of file +} diff --git a/tests/sdk_tests/Dockerfile-sdk b/tests/sdk_tests/Dockerfile similarity index 100% rename from tests/sdk_tests/Dockerfile-sdk rename to tests/sdk_tests/Dockerfile diff --git a/tests/sdk_tests/build-laconicd-container.sh b/tests/sdk_tests/build-laconicd-container.sh index ed4b963d..917213d0 100755 --- a/tests/sdk_tests/build-laconicd-container.sh +++ b/tests/sdk_tests/build-laconicd-container.sh @@ -1,3 +1,2 @@ #!/usr/bin/env bash -docker build -t cerc-io/laconicd:local-test ../../ - +docker build -t cerc/laconicd:local-test ../.. diff --git a/tests/sdk_tests/build-sdk-test-container.sh b/tests/sdk_tests/build-sdk-test-container.sh index c4913889..69ff2a06 100755 --- a/tests/sdk_tests/build-sdk-test-container.sh +++ b/tests/sdk_tests/build-sdk-test-container.sh @@ -1,3 +1,2 @@ #!/usr/bin/env bash -docker build -t cerc-io/laconic-sdk-tester:local-test -f Dockerfile-sdk . - +docker build -t cerc/laconic-sdk-tester:local-test . diff --git a/tests/sdk_tests/docker-compose-auctions.yml b/tests/sdk_tests/docker-compose-auctions.yml deleted file mode 100644 index 9b0df5fd..00000000 --- a/tests/sdk_tests/docker-compose-auctions.yml +++ /dev/null @@ -1,31 +0,0 @@ -services: - laconicd: - restart: unless-stopped - image: cerc-io/laconicd:local-test - environment: - - TEST_AUCTION_ENABLED=true - command: ["sh", "/docker-entrypoint-scripts.d/create-fixturenet.sh"] - volumes: - - ../../init.sh:/docker-entrypoint-scripts.d/create-fixturenet.sh - healthcheck: - test: ["CMD", "curl", "-v", "http://127.0.0.1:6060"] - interval: 1s - timeout: 5s - retries: 30 - ports: - - "6060" - - "26657" - - "26656" - - "9473" - - "8545" - - "8546" - - "9090" - - "9091" - - "1317" - - sdk-test-runner: - image: cerc-io/laconic-sdk-tester:local-test - depends_on: - laconicd: - condition: service_healthy - command: tail -F /dev/null diff --git a/tests/sdk_tests/docker-compose-nameservice.yml b/tests/sdk_tests/docker-compose-nameservice.yml deleted file mode 100644 index 17614108..00000000 --- a/tests/sdk_tests/docker-compose-nameservice.yml +++ /dev/null @@ -1,31 +0,0 @@ -services: - laconicd: - restart: unless-stopped - image: cerc-io/laconicd:local-test - environment: - - TEST_REGISTRY_EXPIRY=true - command: ["sh", "/docker-entrypoint-scripts.d/create-fixturenet.sh"] - volumes: - - ../../init.sh:/docker-entrypoint-scripts.d/create-fixturenet.sh - healthcheck: - test: ["CMD", "curl", "-v", "http://127.0.0.1:6060"] - interval: 1s - timeout: 5s - retries: 30 - ports: - - "6060" - - "26657" - - "26656" - - "9473" - - "8545" - - "8546" - - "9090" - - "9091" - - "1317" - - sdk-test-runner: - image: cerc-io/laconic-sdk-tester:local-test - depends_on: - laconicd: - condition: service_healthy - command: tail -F /dev/null diff --git a/tests/sdk_tests/docker-compose.yml b/tests/sdk_tests/docker-compose.yml index aa886496..7a65e3e1 100644 --- a/tests/sdk_tests/docker-compose.yml +++ b/tests/sdk_tests/docker-compose.yml @@ -1,10 +1,13 @@ services: laconicd: restart: unless-stopped - image: cerc-io/laconicd:local-test + image: cerc/laconicd:local-test command: ["sh", "/docker-entrypoint-scripts.d/create-fixturenet.sh"] + environment: + - TEST_AUCTION_ENABLED + - TEST_REGISTRY_EXPIRY volumes: - - ../../init.sh:/docker-entrypoint-scripts.d/create-fixturenet.sh + - ../../init.sh:/docker-entrypoint-scripts.d/create-fixturenet.sh healthcheck: test: ["CMD", "curl", "-v", "http://127.0.0.1:6060"] interval: 1s @@ -22,7 +25,7 @@ services: - "1317" sdk-test-runner: - image: cerc-io/laconic-sdk-tester:local-test + image: cerc/laconic-sdk-tester:local-test depends_on: laconicd: condition: service_healthy diff --git a/tests/sdk_tests/run-auction-tests.sh b/tests/sdk_tests/run-auction-tests.sh deleted file mode 100755 index d1a05d17..00000000 --- a/tests/sdk_tests/run-auction-tests.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -if [ -n "$CERC_SCRIPT_DEBUG" ]; then - set -x -fi -# Get the key from laconicd -laconicd_key=$( docker compose exec laconicd echo y | docker compose exec laconicd laconicd keys export mykey --unarmored-hex --unsafe ) -# Set parameters for the test suite -cosmos_chain_id=laconic_9000-1 -laconicd_rest_endpoint=http://laconicd:1317 -laconicd_gql_endpoint=http://laconicd:9473/api -# Run tests -docker network inspect sdk_tests_default -sleep 30s -docker logs sdk_tests-laconicd-1 - -docker compose exec sdk-test-runner sh -c "COSMOS_CHAIN_ID=${cosmos_chain_id} LACONICD_REST_ENDPOINT=${laconicd_rest_endpoint} LACONICD_GQL_ENDPOINT=${laconicd_gql_endpoint} PRIVATE_KEY=${laconicd_key} yarn test:auctions" diff --git a/tests/sdk_tests/run-nameservice-expiry-tests.sh b/tests/sdk_tests/run-nameservice-expiry-tests.sh deleted file mode 100755 index 572eaa46..00000000 --- a/tests/sdk_tests/run-nameservice-expiry-tests.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -if [ -n "$CERC_SCRIPT_DEBUG" ]; then - set -x -fi -# Get the key from laconicd -laconicd_key=$( docker compose exec laconicd echo y | docker compose exec laconicd laconicd keys export mykey --unarmored-hex --unsafe ) -# Set parameters for the test suite -cosmos_chain_id=laconic_9000-1 -laconicd_rest_endpoint=http://laconicd:1317 -laconicd_gql_endpoint=http://laconicd:9473/api -# Run tests -docker network inspect sdk_tests_default -sleep 30s -docker logs sdk_tests-laconicd-1 - -docker compose exec sdk-test-runner sh -c "COSMOS_CHAIN_ID=${cosmos_chain_id} LACONICD_REST_ENDPOINT=${laconicd_rest_endpoint} LACONICD_GQL_ENDPOINT=${laconicd_gql_endpoint} PRIVATE_KEY=${laconicd_key} yarn test:nameservice-expiry" diff --git a/tests/sdk_tests/run-tests.sh b/tests/sdk_tests/run-tests.sh index a8d6565b..acf630e7 100755 --- a/tests/sdk_tests/run-tests.sh +++ b/tests/sdk_tests/run-tests.sh @@ -2,17 +2,23 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then set -x fi + +yarn_args=("--inspect-brk=8888") +yarn_args+=("${@:-test}") + # Get the key from laconicd -laconicd_key=$( docker compose exec laconicd echo y | docker compose exec laconicd laconicd keys export mykey --unarmored-hex --unsafe ) +laconicd_key=$( + yes | docker compose exec laconicd laconicd keys export mykey --unarmored-hex --unsafe +) # Set parameters for the test suite cosmos_chain_id=laconic_9000-1 laconicd_rest_endpoint=http://laconicd:1317 laconicd_gql_endpoint=http://laconicd:9473/api -# Run tests -docker network inspect sdk_tests_default -sleep 30s -docker logs laconicd -docker compose exec laconicd sh -c "curl http://127.0.0.1:9473/api" -docker compose exec laconicd sh -c "curl http://localhost:9473/api" -docker compose exec sdk-test-runner sh -c "COSMOS_CHAIN_ID=${cosmos_chain_id} LACONICD_REST_ENDPOINT=${laconicd_rest_endpoint} LACONICD_GQL_ENDPOINT=${laconicd_gql_endpoint} PRIVATE_KEY=${laconicd_key} yarn test" +# Run tests +docker compose exec \ + -e COSMOS_CHAIN_ID="$cosmos_chain_id" \ + -e LACONICD_REST_ENDPOINT="$laconicd_rest_endpoint" \ + -e LACONICD_GQL_ENDPOINT="$laconicd_gql_endpoint" \ + -e PRIVATE_KEY="$laconicd_key" \ + sdk-test-runner yarn run "${yarn_args[@]}" diff --git a/testutil/network/network.go b/testutil/network/network.go index c235bc3c..0a7f30e5 100644 --- a/testutil/network/network.go +++ b/testutil/network/network.go @@ -519,6 +519,7 @@ func New(l Logger, baseDir string, cfg Config) (*Network, error) { l.Log("starting test network...") for _, v := range network.Validators { + l.Log("starting validator:", v.Moniker) err := startInProcess(cfg, v) if err != nil { return nil, err diff --git a/x/registry/client/cli/tx.go b/x/registry/client/cli/tx.go index 1d228136..8bea33ec 100644 --- a/x/registry/client/cli/tx.go +++ b/x/registry/client/cli/tx.go @@ -72,10 +72,6 @@ $ %s tx %s set [payload file path] [bond-id] } msg := types.NewMsgSetRecord(payload, args[1], clientCtx.GetFromAddress()) - err = msg.ValidateBasic() - if err != nil { - return err - } return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), &msg) }, } diff --git a/x/registry/client/testutil/grpc.go b/x/registry/client/testutil/grpc.go index 143dab90..2a001e9c 100644 --- a/x/registry/client/testutil/grpc.go +++ b/x/registry/client/testutil/grpc.go @@ -42,7 +42,8 @@ func (s *IntegrationTestSuite) TestGRPCQueryParams() { for _, tc := range testCases { s.Run(tc.name, func() { - resp, _ := rest.GetRequest(tc.url) + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -60,7 +61,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryParams() { } } -//nolint: all +// nolint: all func (s *IntegrationTestSuite) TestGRPCQueryWhoIs() { val := s.network.Validators[0] sr := s.Require() @@ -110,11 +111,11 @@ func (s *IntegrationTestSuite) TestGRPCQueryWhoIs() { for _, tc := range testCases { s.Run(tc.name, func() { - if !tc.expectErr { - tc.preRun(authorityName) - tc.url = fmt.Sprintf(tc.url, authorityName) - } - resp, _ := rest.GetRequest(tc.url) + tc.preRun(authorityName) + tc.url = fmt.Sprintf(tc.url, authorityName) + + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -131,7 +132,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryWhoIs() { func (s *IntegrationTestSuite) TestGRPCQueryLookup() { val := s.network.Validators[0] sr := s.Require() - reqURL := val.APIAddress + "/vulcanize/registry/v1beta1/lookup?crn=%s" + reqURL := val.APIAddress + "/vulcanize/registry/v1beta1/lookup" authorityName := "QueryLookUp" testCases := []struct { @@ -151,7 +152,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryLookup() { }, { "Success", - reqURL, + fmt.Sprintf(reqURL+"?crn=crn://%s/", authorityName), false, "", func(authorityName string) { @@ -163,11 +164,9 @@ func (s *IntegrationTestSuite) TestGRPCQueryLookup() { for _, tc := range testCases { s.Run(tc.name, func() { - if !tc.expectErr { - tc.preRun(authorityName) - tc.url = fmt.Sprintf(reqURL, fmt.Sprintf("crn://%s/", authorityName)) - } - resp, _ := rest.GetRequest(tc.url) + tc.preRun(authorityName) + resp, err := rest.GetRequest(tc.url) + s.NoError(err) if tc.expectErr { sr.Contains(string(resp), tc.errorMsg) } else { @@ -180,7 +179,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryLookup() { } } -//nolint: all +// nolint: all func (s *IntegrationTestSuite) TestGRPCQueryRecordExpiryQueue() { val := s.network.Validators[0] sr := s.Require() @@ -233,12 +232,11 @@ func (s *IntegrationTestSuite) TestGRPCQueryRecordExpiryQueue() { for _, tc := range testCases { s.Run(tc.name, func() { - if !tc.expectErr { - tc.preRun(s.bondID) - } + tc.preRun(s.bondID) // wait 12 seconds for records expires time.Sleep(time.Second * 12) - resp, _ := rest.GetRequest(tc.url) + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -252,7 +250,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryRecordExpiryQueue() { } } -//nolint: all +// nolint: all func (s *IntegrationTestSuite) TestGRPCQueryAuthorityExpiryQueue() { val := s.network.Validators[0] sr := s.Require() @@ -303,13 +301,12 @@ func (s *IntegrationTestSuite) TestGRPCQueryAuthorityExpiryQueue() { for _, tc := range testCases { s.Run(tc.name, func() { - if !tc.expectErr { - tc.preRun("QueryAuthorityExpiryQueue") - } + tc.preRun("QueryAuthorityExpiryQueue") // wait 12 seconds to name authorites expires time.Sleep(time.Second * 12) - resp, _ := rest.GetRequest(tc.url) + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -324,7 +321,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryAuthorityExpiryQueue() { } } -//nolint: all +// nolint: all func (s *IntegrationTestSuite) TestGRPCQueryListRecords() { val := s.network.Validators[0] sr := s.Require() @@ -377,10 +374,9 @@ func (s *IntegrationTestSuite) TestGRPCQueryListRecords() { for _, tc := range testCases { s.Run(tc.name, func() { - if !tc.expectErr { - tc.preRun(s.bondID) - } - resp, _ := rest.GetRequest(tc.url) + tc.preRun(s.bondID) + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -443,12 +439,11 @@ func (s *IntegrationTestSuite) TestGRPCQueryGetRecordByID() { for _, tc := range testCases { s.Run(tc.name, func() { - var recordID string - if !tc.expectErr { - recordID = tc.preRun(s.bondID) - tc.url = fmt.Sprintf(reqURL, recordID) - } - resp, _ := rest.GetRequest(tc.url) + recordID := tc.preRun(s.bondID) + tc.url = fmt.Sprintf(reqURL, recordID) + + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -498,11 +493,11 @@ func (s *IntegrationTestSuite) TestGRPCQueryGetRecordByBondID() { for _, tc := range testCases { s.Run(tc.name, func() { - if !tc.expectErr { - tc.preRun(s.bondID) - tc.url = fmt.Sprintf(reqURL, s.bondID) - } - resp, _ := rest.GetRequest(tc.url) + tc.preRun(s.bondID) + tc.url = fmt.Sprintf(reqURL, s.bondID) + + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -552,10 +547,9 @@ func (s *IntegrationTestSuite) TestGRPCQueryGetRegistryModuleBalance() { for _, tc := range testCases { s.Run(tc.name, func() { - if !tc.expectErr { - tc.preRun(s.bondID) - } - resp, _ := rest.GetRequest(tc.url) + tc.preRun(s.bondID) + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -603,10 +597,9 @@ func (s *IntegrationTestSuite) TestGRPCQueryNamesList() { for _, tc := range testCases { s.Run(tc.name, func() { - if !tc.expectErr { - tc.preRun("ListNameRecords") - } - resp, _ := rest.GetRequest(tc.url) + tc.preRun("ListNameRecords") + resp, err := rest.GetRequest(tc.url) + s.NoError(err) require := s.Require() if tc.expectErr { require.Contains(string(resp), tc.errorMsg) @@ -643,5 +636,5 @@ func createRecord(bondID string, s *IntegrationTestSuite) { var d sdk.TxResponse err = val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &d) sr.NoError(err) - sr.Zero(d.Code) + sr.Zero(d.Code, d.RawLog) } diff --git a/x/registry/client/testutil/query.go b/x/registry/client/testutil/query.go index f2b09b89..7b186d3f 100644 --- a/x/registry/client/testutil/query.go +++ b/x/registry/client/testutil/query.go @@ -538,9 +538,6 @@ func createNameRecord(authorityName string, s *IntegrationTestSuite) { sr.NoError(err) sr.Zero(d.Code) - // creating the bond - CreateBond(s) - // Get the bond-id bondID := GetBondID(s) diff --git a/x/registry/client/testutil/tx.go b/x/registry/client/testutil/tx.go index 4da1bdc2..fa820bb7 100644 --- a/x/registry/client/testutil/tx.go +++ b/x/registry/client/testutil/tx.go @@ -101,42 +101,23 @@ func CreateBond(s *IntegrationTestSuite) { val := s.network.Validators[0] sr := s.Require() - testCases := []struct { - name string - args []string - err bool - }{ - { - "create bond", - []string{ - fmt.Sprintf("100000000000%s", s.cfg.BondDenom), - fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock), - fmt.Sprintf("--%s=json", tmcli.OutputFlag), - fmt.Sprintf("--%s=%s", flags.FlagFees, fmt.Sprintf("3%s", s.cfg.BondDenom)), - }, - false, - }, + clientCtx := val.ClientCtx + cmd := bondcli.NewCreateBondCmd() + args := []string{ + fmt.Sprintf("100000000000%s", s.cfg.BondDenom), + fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock), + fmt.Sprintf("--%s=json", tmcli.OutputFlag), + fmt.Sprintf("--%s=%s", flags.FlagFees, fmt.Sprintf("3%s", s.cfg.BondDenom)), } + out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, args) + sr.NoError(err) - for _, tc := range testCases { - s.Run(fmt.Sprintf("Case %s", tc.name), func() { - clientCtx := val.ClientCtx - cmd := bondcli.NewCreateBondCmd() - - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) - if tc.err { - sr.Error(err) - } else { - sr.NoError(err) - var d sdk.TxResponse - err = val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &d) - sr.NoError(err) - sr.Zero(d.Code) - } - }) - } + var d sdk.TxResponse + err = val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &d) + sr.NoError(err) + sr.Zero(d.Code) } func GetBondID(s *IntegrationTestSuite) string { @@ -160,6 +141,11 @@ func (s *IntegrationTestSuite) TestGetCmdSetRecord() { val := s.network.Validators[0] sr := s.Require() + bondID := GetBondID(s) + dir, err := os.Getwd() + sr.NoError(err) + payloadPath := dir + "/service_provider_example.yml" + testCases := []struct { name string args []string @@ -179,6 +165,7 @@ func (s *IntegrationTestSuite) TestGetCmdSetRecord() { { "success", []string{ + payloadPath, bondID, fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=json", tmcli.OutputFlag), @@ -191,17 +178,6 @@ func (s *IntegrationTestSuite) TestGetCmdSetRecord() { for _, tc := range testCases { s.Run(fmt.Sprintf("Case %s", tc.name), func() { - if !tc.err { - // create the bond - CreateBond(s) - // get the bond id from bond list - bondID := GetBondID(s) - dir, err := os.Getwd() - sr.NoError(err) - payloadPath := dir + "/service_provider_example.yml" - - tc.args = append([]string{payloadPath, bondID}, tc.args...) - } clientCtx := val.ClientCtx cmd := cli.GetCmdSetRecord() @@ -341,9 +317,6 @@ func (s *IntegrationTestSuite) TestGetCmdSetName() { sr.NoError(err) sr.Zero(d.Code) - // creating the bond - CreateBond(s) - // Get the bond-id bondID := GetBondID(s) @@ -369,9 +342,7 @@ func (s *IntegrationTestSuite) TestGetCmdSetName() { for _, tc := range testCases { s.Run(fmt.Sprintf("Case %s", tc.name), func() { - if !tc.err { - tc.preRun(authorityName) - } + tc.preRun(authorityName) clientCtx := val.ClientCtx cmd := cli.GetCmdSetName() @@ -394,6 +365,7 @@ func (s *IntegrationTestSuite) TestGetCmdSetAuthorityBond() { val := s.network.Validators[0] sr := s.Require() authorityName := "TestGetCmdSetAuthorityBond" + bondID := GetBondID(s) testCases := []struct { name string @@ -417,6 +389,7 @@ func (s *IntegrationTestSuite) TestGetCmdSetAuthorityBond() { { "success with name and bond-id", []string{ + authorityName, bondID, fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=json", tmcli.OutputFlag), @@ -449,15 +422,7 @@ func (s *IntegrationTestSuite) TestGetCmdSetAuthorityBond() { for _, tc := range testCases { s.Run(fmt.Sprintf("Case %s", tc.name), func() { - if !tc.err { - // reserve the name - tc.preRun(authorityName) - // creating the bond - CreateBond(s) - // getting the bond-id - bondID := GetBondID(s) - tc.args = append([]string{authorityName, bondID}, tc.args...) - } + tc.preRun(authorityName) clientCtx := val.ClientCtx cmd := cli.GetCmdSetAuthorityBond() @@ -501,6 +466,7 @@ func (s *IntegrationTestSuite) TestGetCmdDeleteName() { { "successfully delete name", []string{ + fmt.Sprintf("crn://%s/", authorityName), fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=json", tmcli.OutputFlag), @@ -516,10 +482,8 @@ func (s *IntegrationTestSuite) TestGetCmdDeleteName() { for _, tc := range testCasesForDeletingName { s.Run(fmt.Sprintf("Case %s", tc.name), func() { - if !tc.err { - tc.preRun(authorityName, s) - tc.args = append([]string{fmt.Sprintf("crn://%s/", authorityName)}, tc.args...) - } + tc.preRun(authorityName, s) + clientCtx := val.ClientCtx cmd := cli.GetCmdDeleteName() @@ -574,8 +538,6 @@ func (s *IntegrationTestSuite) TestGetCmdDissociateBond() { }, false, func(s *IntegrationTestSuite) string { - // create the bond - CreateBond(s) // get the bond id from bond list bondID := GetBondID(s) dir, err := os.Getwd() @@ -816,8 +778,6 @@ func (s *IntegrationTestSuite) TestGetCmdAssociateBond() { }, false, func(s *IntegrationTestSuite) (string, string) { - // create the bond - CreateBond(s) // get the bond id from bond list bondID := GetBondID(s) dir, err := os.Getwd() diff --git a/x/registry/keeper/keeper.go b/x/registry/keeper/keeper.go index d44b13df..373d770f 100644 --- a/x/registry/keeper/keeper.go +++ b/x/registry/keeper/keeper.go @@ -256,13 +256,13 @@ func (k Keeper) ProcessSetRecord(ctx sdk.Context, msg types.MsgSetRecord) (*type pubKey, err := legacy.PubKeyFromBytes(helpers.BytesFromBase64(sig.PubKey)) if err != nil { fmt.Println("Error decoding pubKey from bytes: ", err) - return nil, errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Invalid public key.") + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "Invalid public key: %s", err) } sigOK := pubKey.VerifySignature(resourceSignBytes, helpers.BytesFromBase64(sig.Sig)) if !sigOK { fmt.Println("Signature mismatch: ", sig.PubKey) - return nil, errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Invalid signature.") + return nil, errorsmod.Wrapf(sdkerrors.ErrUnauthorized, "Invalid signature: %s", sig.PubKey) } record.Owners = append(record.Owners, pubKey.Address().String()) } diff --git a/x/registry/keeper/msg_server.go b/x/registry/keeper/msg_server.go index 775b6c6e..9f72f528 100644 --- a/x/registry/keeper/msg_server.go +++ b/x/registry/keeper/msg_server.go @@ -25,11 +25,7 @@ func (m msgServer) SetRecord(c context.Context, msg *types.MsgSetRecord) (*types return nil, err } - record, err := m.Keeper.ProcessSetRecord(ctx, types.MsgSetRecord{ - BondId: msg.GetBondId(), - Signer: msg.GetSigner(), - Payload: msg.GetPayload(), - }) + record, err := m.Keeper.ProcessSetRecord(ctx, *msg) if err != nil { return nil, err } @@ -51,7 +47,7 @@ func (m msgServer) SetRecord(c context.Context, msg *types.MsgSetRecord) (*types return &types.MsgSetRecordResponse{Id: record.ID}, nil } -//nolint: all +// nolint: all func (m msgServer) SetName(c context.Context, msg *types.MsgSetName) (*types.MsgSetNameResponse, error) { ctx := sdk.UnwrapSDKContext(c) _, err := sdk.AccAddressFromBech32(msg.Signer) @@ -108,7 +104,7 @@ func (m msgServer) ReserveName(c context.Context, msg *types.MsgReserveAuthority return &types.MsgReserveAuthorityResponse{}, nil } -//nolint: all +// nolint: all func (m msgServer) SetAuthorityBond(c context.Context, msg *types.MsgSetAuthorityBond) (*types.MsgSetAuthorityBondResponse, error) { ctx := sdk.UnwrapSDKContext(c) _, err := sdk.AccAddressFromBech32(msg.Signer) @@ -185,7 +181,7 @@ func (m msgServer) RenewRecord(c context.Context, msg *types.MsgRenewRecord) (*t return &types.MsgRenewRecordResponse{}, nil } -//nolint: all +// nolint: all func (m msgServer) AssociateBond(c context.Context, msg *types.MsgAssociateBond) (*types.MsgAssociateBondResponse, error) { ctx := sdk.UnwrapSDKContext(c) _, err := sdk.AccAddressFromBech32(msg.Signer)