github.com/status-im/status-go@v1.1.0/services/wallet/community/database_test.go (about)

     1  package community
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/status-im/status-go/services/wallet/thirdparty"
     7  	"github.com/status-im/status-go/t/helpers"
     8  	"github.com/status-im/status-go/walletdatabase"
     9  
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func setupCommunityDataDBTest(t *testing.T) (*DataDB, func()) {
    14  	db, err := helpers.SetupTestMemorySQLDB(walletdatabase.DbInitializer{})
    15  	require.NoError(t, err)
    16  	return NewDataDB(db), func() {
    17  		require.NoError(t, db.Close())
    18  	}
    19  }
    20  
    21  func TestUpdateCommunityInfo(t *testing.T) {
    22  	db, cleanup := setupCommunityDataDBTest(t)
    23  	defer cleanup()
    24  
    25  	communityData := thirdparty.GenerateTestCommunityInfo(10)
    26  	extraCommunityID := "extra-community-id"
    27  
    28  	for communityID, communityInfo := range communityData {
    29  		communityInfo := communityInfo // Prevent lint warning G601: Implicit memory aliasing in for loop.
    30  		err := db.SetCommunityInfo(communityID, &communityInfo)
    31  		require.NoError(t, err)
    32  	}
    33  	err := db.SetCommunityInfo(extraCommunityID, nil)
    34  	require.NoError(t, err)
    35  
    36  	for communityID, communityInfo := range communityData {
    37  		info, state, err := db.GetCommunityInfo(communityID)
    38  		require.NoError(t, err)
    39  		require.Equal(t, communityInfo, *info)
    40  		require.True(t, state.LastUpdateSuccesful)
    41  	}
    42  	info, state, err := db.GetCommunityInfo(extraCommunityID)
    43  	require.NoError(t, err)
    44  	require.Empty(t, info)
    45  	require.False(t, state.LastUpdateSuccesful)
    46  
    47  	randomCommunityID := "random-community-id"
    48  	info, state, err = db.GetCommunityInfo(randomCommunityID)
    49  	require.NoError(t, err)
    50  	require.Empty(t, info)
    51  	require.Empty(t, state)
    52  }