package services import ( "testing" "github.com/stretchr/testify/assert" "custom-start-page/internal/models" ) // TestSortPagesByOrder tests the sorting function without requiring DynamoDB func TestSortPagesByOrder(t *testing.T) { pages := []*models.Page{ {ID: "page-3", Order: 2}, {ID: "page-1", Order: 0}, {ID: "page-2", Order: 1}, } sortPagesByOrder(pages) assert.Equal(t, "page-1", pages[0].ID) assert.Equal(t, "page-2", pages[1].ID) assert.Equal(t, "page-3", pages[2].ID) } // TestSortPagesByOrderAlreadySorted tests sorting already sorted pages func TestSortPagesByOrderAlreadySorted(t *testing.T) { pages := []*models.Page{ {ID: "page-1", Order: 0}, {ID: "page-2", Order: 1}, {ID: "page-3", Order: 2}, } sortPagesByOrder(pages) assert.Equal(t, "page-1", pages[0].ID) assert.Equal(t, "page-2", pages[1].ID) assert.Equal(t, "page-3", pages[2].ID) } // TestSortPagesByOrderReversed tests sorting reversed pages func TestSortPagesByOrderReversed(t *testing.T) { pages := []*models.Page{ {ID: "page-3", Order: 2}, {ID: "page-2", Order: 1}, {ID: "page-1", Order: 0}, } sortPagesByOrder(pages) assert.Equal(t, "page-1", pages[0].ID) assert.Equal(t, "page-2", pages[1].ID) assert.Equal(t, "page-3", pages[2].ID) } // TestSortPagesByOrderEmpty tests sorting empty slice func TestSortPagesByOrderEmpty(t *testing.T) { pages := []*models.Page{} sortPagesByOrder(pages) assert.Empty(t, pages) } // TestSortPagesByOrderSingle tests sorting single page func TestSortPagesByOrderSingle(t *testing.T) { pages := []*models.Page{ {ID: "page-1", Order: 0}, } sortPagesByOrder(pages) assert.Len(t, pages, 1) assert.Equal(t, "page-1", pages[0].ID) }