package cosmostest_test

import (
	"testing"

	keepertest "cosmos-test/testutil/keeper"
	"cosmos-test/testutil/nullify"
	"cosmos-test/x/cosmostest"
	"cosmos-test/x/cosmostest/types"

	"github.com/stretchr/testify/require"
)

func TestGenesis(t *testing.T) {
	genesisState := types.GenesisState{
		Params: types.DefaultParams(),

		NextAuction: &types.NextAuction{
			AuctionId: 43,
		},
		AuctionList: []types.Auction{
			{
				Index: "0",
			},
			{
				Index: "1",
			},
		},
		// this line is used by starport scaffolding # genesis/test/state
	}

	k, ctx := keepertest.CosmostestKeeper(t)
	cosmostest.InitGenesis(ctx, *k, genesisState)
	got := cosmostest.ExportGenesis(ctx, *k)
	require.NotNil(t, got)

	nullify.Fill(&genesisState)
	nullify.Fill(got)

	require.Equal(t, genesisState.NextAuction, got.NextAuction)
	require.ElementsMatch(t, genesisState.AuctionList, got.AuctionList)
	// this line is used by starport scaffolding # genesis/test/assert
}
