Documentation
¶
Overview ¶
Package admincontract provides reusable repository contract assertions.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssertPaginationContract ¶
func AssertPaginationContract(t *testing.T, list ListFunc, cfg PaginationContractConfig)
AssertPaginationContract verifies that total is stable across pages and page slicing honors total/per-page semantics.
Types ¶
type ListOptions ¶
type ListOptions struct {
Page int `json:"page"`
PerPage int `json:"per_page"`
SortBy string `json:"sort_by"`
SortDesc bool `json:"sort_desc"`
Filters map[string]any `json:"filters"`
Predicates []ListPredicate `json:"predicates"`
Fields []string `json:"fields"`
Search string `json:"search"`
}
ListOptions is a transport-agnostic list query shape for list contracts.
type ListPredicate ¶
type ListPredicate struct {
Field string `json:"field"`
Operator string `json:"operator"`
Values []string `json:"values"`
}
ListPredicate is a transport-agnostic predicate shape for list contracts.
type PaginationContractConfig ¶
type PaginationContractConfig struct {
TotalExpected int `json:"total_expected"`
PerPage int `json:"per_page"`
SortBy string `json:"sort_by"`
SortDesc bool `json:"sort_desc"`
Filters map[string]any `json:"filters"`
Predicates []ListPredicate `json:"predicates"`
Search string `json:"search"`
UniqueKey string `json:"unique_key"`
}
PaginationContractConfig configures assertions for a list total/pagination contract.
Click to show internal directories.
Click to hide internal directories.