github.com/celestiaorg/celestia-node@v0.15.0-beta.1/nodebuilder/share/share_test.go (about)

     1  package share
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/ipfs/go-datastore"
     8  	ds_sync "github.com/ipfs/go-datastore/sync"
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/celestiaorg/celestia-node/share"
    13  	"github.com/celestiaorg/celestia-node/share/eds"
    14  )
    15  
    16  func Test_EmptyCARExists(t *testing.T) {
    17  	ctx, cancel := context.WithCancel(context.Background())
    18  	t.Cleanup(cancel)
    19  
    20  	ds := ds_sync.MutexWrap(datastore.NewMapDatastore())
    21  	edsStore, err := eds.NewStore(eds.DefaultParameters(), t.TempDir(), ds)
    22  	require.NoError(t, err)
    23  	err = edsStore.Start(ctx)
    24  	require.NoError(t, err)
    25  
    26  	eds := share.EmptyExtendedDataSquare()
    27  	dah, err := share.NewRoot(eds)
    28  	require.NoError(t, err)
    29  
    30  	// add empty EDS to store
    31  	err = ensureEmptyCARExists(ctx, edsStore)
    32  	assert.NoError(t, err)
    33  
    34  	// assert that the empty car exists
    35  	has, err := edsStore.Has(ctx, dah.Hash())
    36  	assert.True(t, has)
    37  	assert.NoError(t, err)
    38  
    39  	// assert that the empty car is, in fact, empty
    40  	emptyEds, err := edsStore.Get(ctx, dah.Hash())
    41  	assert.Equal(t, eds.Flattened(), emptyEds.Flattened())
    42  	assert.NoError(t, err)
    43  }