From f918b59d7dca2be22868238143e9c3ba0b925aee Mon Sep 17 00:00:00 2001 From: aljo242 Date: Sun, 3 Dec 2023 22:06:12 -0500 Subject: [PATCH] refactor --- .github/workflows/test.yml | 26 +++++++-- Makefile | 9 ++-- tests/integration/network_test.go | 87 ++++++++++++++++++++----------- 3 files changed, 84 insertions(+), 38 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ead0bbe..56f5d93 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,8 +5,6 @@ on: push: branches: - main - paths-ignore: - - tests/** permissions: contents: read @@ -16,7 +14,7 @@ concurrency: cancel-in-progress: true jobs: - test: + test-unit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -35,4 +33,24 @@ jobs: - name: tests if: env.GIT_DIFF run: | - make test \ No newline at end of file + make test-unit + test-integration: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 + with: + go-version: 1.21.4 + cache: true + cache-dependency-path: go.sum + - uses: technote-space/get-diff-action@v6.1.2 + id: git_diff + with: + PATTERNS: | + **/*.go + go.mod + go.sum + - name: tests + if: env.GIT_DIFF + run: | + make test-integration \ No newline at end of file diff --git a/Makefile b/Makefile index 4186520..e835e5b 100644 --- a/Makefile +++ b/Makefile @@ -126,10 +126,12 @@ test-e2e: $(TEST_E2E_DEPS) @echo "Running e2e tests..." @go test ./tests/e2e/e2e_test.go -timeout 30m -p 1 -race -v -tags='$(TEST_E2E_TAGS)' -test: +test-unit: @go test -v -race $(shell go list ./... | grep -v tests/) -## test-cover: Run the unit tests and create a coverage html report +test-integration: + @go test -v -race ./tests/integration + test-cover: @echo Running unit tests and creating coverage report... @go test -mod=readonly -v -timeout 30m -coverprofile=$(COVER_FILE) -covermode=atomic $(shell go list ./... | grep -v tests/ | grep -v api/ | grep -v testutils/) @@ -138,8 +140,9 @@ test-cover: @go tool cover -html=$(COVER_FILE) -o $(COVER_HTML_FILE) @rm $(COVER_FILE) +test-all: test-unit test-integration test-e2e -.PHONY: test test-e2e +.PHONY: test-unit test-e2e test-integration test-cover test-all ############################################################################### ### Protobuf ### diff --git a/tests/integration/network_test.go b/tests/integration/network_test.go index badcc08..8fc148e 100644 --- a/tests/integration/network_test.go +++ b/tests/integration/network_test.go @@ -2,16 +2,17 @@ package integration_test import ( "fmt" - "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/stretchr/testify/require" - "google.golang.org/grpc/codes" - "strconv" "testing" tmcli "github.com/cometbft/cometbft/libs/cli" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" + "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" + "google.golang.org/grpc/status" "github.com/skip-mev/feemarket/testutils/networksuite" + "github.com/skip-mev/feemarket/x/feemarket/client/cli" + "github.com/skip-mev/feemarket/x/feemarket/types" ) // QueryTestSuite is a test suite for query tests @@ -24,55 +25,79 @@ func TestNetworkTestSuite(t *testing.T) { suite.Run(t, new(NetworkTestSuite)) } -func (suite *NetworkTestSuite) TestShowGenesisAccount() { - ctx := suite.Network.Validators[0].ClientCtx +func (s *NetworkTestSuite) TestGetParams() { + s.T().Parallel() + + ctx := s.Network.Validators[0].ClientCtx common := []string{ fmt.Sprintf("--%s=json", tmcli.OutputFlag), } for _, tc := range []struct { - desc string - idLaunchID string - idAddress string + name string args []string err error - obj types.GenesisAccount + obj types.Params }{ { - desc: "should show an existing genesis account", - idLaunchID: strconv.Itoa(int(accs[0].LaunchID)), - idAddress: accs[0].Address, - + name: "should return default params", args: common, - obj: accs[0], + obj: types.DefaultParams(), }, - { - desc: "should send error for a non existing genesis account", - idLaunchID: strconv.Itoa(100000), - idAddress: strconv.Itoa(100000), + } { + s.T().Run(tc.name, func(t *testing.T) { + tc := tc + out, err := clitestutil.ExecTestCLICmd(ctx, cli.GetParamsCmd(), tc.args) + if tc.err != nil { + stat, ok := status.FromError(tc.err) + require.True(t, ok) + require.ErrorIs(t, stat.Err(), tc.err) + } else { + require.NoError(t, err) + var resp types.ParamsResponse + require.NoError(t, s.Network.Config.Codec.UnmarshalJSON(out.Bytes(), &resp.Params)) + require.NotNil(t, resp.Params) + require.Equal(t, tc.obj, resp.Params) + } + }) + } +} + +func (s *NetworkTestSuite) TestGetState() { + s.T().Parallel() + + ctx := s.Network.Validators[0].ClientCtx + + common := []string{ + fmt.Sprintf("--%s=json", tmcli.OutputFlag), + } + for _, tc := range []struct { + name string + args []string + err error + obj types.State + }{ + { + name: "should return default state", args: common, - err: status.Error(codes.NotFound, "not found"), + obj: types.DefaultState(), }, } { - suite.T().Run(tc.desc, func(t *testing.T) { - args := []string{ - tc.idLaunchID, - tc.idAddress, - } - args = append(args, tc.args...) - out, err := clitestutil.ExecTestCLICmd(ctx, cli.CmdShowGenesisAccount(), args) + s.T().Run(tc.name, func(t *testing.T) { + tc := tc + out, err := clitestutil.ExecTestCLICmd(ctx, cli.GetStateCmd(), tc.args) if tc.err != nil { stat, ok := status.FromError(tc.err) require.True(t, ok) require.ErrorIs(t, stat.Err(), tc.err) } else { require.NoError(t, err) - var resp types.QueryGetGenesisAccountResponse - require.NoError(t, suite.Network.Config.Codec.UnmarshalJSON(out.Bytes(), &resp)) - require.NotNil(t, resp.GenesisAccount) - require.Equal(t, tc.obj, resp.GenesisAccount) + var resp types.StateResponse + require.NoError(t, s.Network.Config.Codec.UnmarshalJSON(out.Bytes(), &resp.State)) + require.NotNil(t, resp.State) + require.Equal(t, tc.obj, resp.State) } }) }