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

     1  package collectibles
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/status-im/status-go/services/wallet/thirdparty"
     7  
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func getCommunityCollectible() thirdparty.FullCollectibleData {
    12  	return thirdparty.GenerateTestFullCollectiblesData(1)[0]
    13  }
    14  
    15  func getNonCommunityCollectible() thirdparty.FullCollectibleData {
    16  	c := thirdparty.GenerateTestFullCollectiblesData(1)[0]
    17  	c.CollectibleData.CommunityID = ""
    18  	c.CollectionData.CommunityID = ""
    19  	c.CommunityInfo = nil
    20  	c.CollectibleCommunityInfo = nil
    21  	return c
    22  }
    23  
    24  func TestFullCollectibleToHeader(t *testing.T) {
    25  	communityCollectible := getCommunityCollectible()
    26  	communityHeader := fullCollectibleDataToHeader(communityCollectible)
    27  
    28  	require.Equal(t, CollectibleDataTypeHeader, communityHeader.DataType)
    29  	require.Equal(t, communityCollectible.CollectibleData.ID, communityHeader.ID)
    30  
    31  	require.NotEmpty(t, communityHeader.CollectibleData)
    32  	require.NotEmpty(t, communityHeader.CollectionData)
    33  	require.NotEmpty(t, communityHeader.CommunityData)
    34  	require.NotEmpty(t, communityHeader.Ownership)
    35  
    36  	nonCommunityCollectible := getNonCommunityCollectible()
    37  	nonCommunityHeader := fullCollectibleDataToHeader(nonCommunityCollectible)
    38  
    39  	require.Equal(t, CollectibleDataTypeHeader, nonCommunityHeader.DataType)
    40  	require.Equal(t, nonCommunityCollectible.CollectibleData.ID, nonCommunityHeader.ID)
    41  
    42  	require.NotEmpty(t, nonCommunityHeader.CollectibleData)
    43  	require.NotEmpty(t, nonCommunityHeader.CollectionData)
    44  	require.Empty(t, nonCommunityHeader.CommunityData)
    45  	require.NotEmpty(t, nonCommunityHeader.Ownership)
    46  }
    47  
    48  func TestFullCollectibleToDetails(t *testing.T) {
    49  	communityCollectible := getCommunityCollectible()
    50  	communityDetails := fullCollectibleDataToDetails(communityCollectible)
    51  
    52  	require.Equal(t, CollectibleDataTypeDetails, communityDetails.DataType)
    53  	require.Equal(t, communityCollectible.CollectibleData.ID, communityDetails.ID)
    54  
    55  	require.NotEmpty(t, communityDetails.CollectibleData)
    56  	require.NotEmpty(t, communityDetails.CollectionData)
    57  	require.NotEmpty(t, communityDetails.CommunityData)
    58  	require.NotEmpty(t, communityDetails.Ownership)
    59  
    60  	nonCommunityCollectible := getNonCommunityCollectible()
    61  	nonCommunityDetails := fullCollectibleDataToDetails(nonCommunityCollectible)
    62  
    63  	require.Equal(t, CollectibleDataTypeDetails, nonCommunityDetails.DataType)
    64  	require.Equal(t, nonCommunityCollectible.CollectibleData.ID, nonCommunityDetails.ID)
    65  
    66  	require.NotEmpty(t, nonCommunityDetails.CollectibleData)
    67  	require.NotEmpty(t, nonCommunityDetails.CollectionData)
    68  	require.Empty(t, nonCommunityDetails.CommunityData)
    69  	require.NotEmpty(t, nonCommunityDetails.Ownership)
    70  }
    71  
    72  func TestFullCollectiblesToCommunityHeader(t *testing.T) {
    73  	collectibles := make([]thirdparty.FullCollectibleData, 0, 10)
    74  	for i := 0; i < 10; i++ {
    75  		if i%2 == 0 {
    76  			collectibles = append(collectibles, getCommunityCollectible())
    77  		} else {
    78  			collectibles = append(collectibles, getNonCommunityCollectible())
    79  		}
    80  	}
    81  
    82  	communityHeaders := fullCollectiblesDataToCommunityHeader(collectibles)
    83  	require.Equal(t, 5, len(communityHeaders))
    84  }