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 }