...

Source file src/edge-infra.dev/pkg/edge/api/graph/pagination/pagination_test.go

Documentation: edge-infra.dev/pkg/edge/api/graph/pagination

     1  package pagination
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  var (
    12  	defaultCursor = Pager{
    13  		Cursor:   time.Now().Format(time.RFC3339),
    14  		Offset:   0,
    15  		Previous: false,
    16  	}
    17  )
    18  
    19  func TestParse(t *testing.T) {
    20  	// Test that default values are used
    21  	_, count := Parse(nil, nil)
    22  	assert.Equal(t, count, defaultCount)
    23  	// Test that provided values are parsed
    24  	cursor := encode(defaultCursor)
    25  	limit := 20
    26  	startCursor, count := Parse(&cursor, &limit)
    27  	assert.Equal(t, count, 20)
    28  	expectedCursor, err := Decode(cursor)
    29  	assert.NoError(t, err)
    30  	decodedPager := Pager{}
    31  	err = json.Unmarshal(expectedCursor, &decodedPager)
    32  	assert.NoError(t, err)
    33  	assert.Equal(t, startCursor, decodedPager)
    34  }
    35  
    36  func TestOverall(t *testing.T) {
    37  	start := defaultCursor
    38  	end := time.Now().Add(36 * time.Hour).Format(time.RFC3339)
    39  	pager := Overall(start, end, "", 10, 10, 0)
    40  	assert.Equal(t, pager.HasNextPage, false)
    41  	assert.Equal(t, pager.CurrentCursor, encode(start))
    42  	assert.Equal(t, pager.NextCursor, encode(Pager{
    43  		Cursor: end,
    44  		Offset: 10,
    45  	}))
    46  	assert.Equal(t, pager.TotalCount, 10)
    47  	assert.Equal(t, pager.PreviousCursor, "")
    48  }
    49  

View as plain text