admincontract

package
v0.139.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2026 License: MIT Imports: 4 Imported by: 1

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 ListFunc

type ListFunc func(context.Context, ListOptions) ([]map[string]any, int, error)

ListFunc describes the contract target list function.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL