mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2026-07-30 06:07:38 +00:00
7c737afc5a
* Add SetDefaultSort method to configure default sort order * Implement getDefaultSort method to retrieve configured defaults * Update handleRead to apply default sort when none specified * Add tests for default sort functionality
39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package restheadspec
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/bitechdev/ResolveSpec/pkg/common"
|
|
)
|
|
|
|
func TestSetDefaultSort(t *testing.T) {
|
|
handler := NewHandler(nil, nil)
|
|
|
|
// No default configured yet
|
|
if got := handler.getDefaultSort("public", "users"); got != nil {
|
|
t.Errorf("Expected no default sort, got %v", got)
|
|
}
|
|
|
|
// Global default
|
|
global := []common.SortOption{{Column: "created_at", Direction: "desc"}}
|
|
handler.SetDefaultSort("", "", global...)
|
|
|
|
if got := handler.getDefaultSort("public", "users"); !reflect.DeepEqual(got, global) {
|
|
t.Errorf("Expected global default sort %v, got %v", global, got)
|
|
}
|
|
|
|
// Per-model default overrides the global default
|
|
perModel := []common.SortOption{{Column: "name", Direction: "asc"}}
|
|
handler.SetDefaultSort("public", "users", perModel...)
|
|
|
|
if got := handler.getDefaultSort("public", "users"); !reflect.DeepEqual(got, perModel) {
|
|
t.Errorf("Expected per-model default sort %v, got %v", perModel, got)
|
|
}
|
|
|
|
// Other models still fall back to the global default
|
|
if got := handler.getDefaultSort("public", "orders"); !reflect.DeepEqual(got, global) {
|
|
t.Errorf("Expected global default sort %v for unrelated model, got %v", global, got)
|
|
}
|
|
}
|