package cases

import "github.com/open-policy-agent/opa/v1/test/cases"

Package cases contains utilities for evaluation test cases.

Index

Types

type Set

type Set struct {
	Cases []TestCase `json:"cases"`
}

Set represents a collection of test cases.

func Load

func Load(path string) (Set, error)

Load returns a set of built-in test cases.

func MustLoad

func MustLoad(path string) Set

MustLoad returns a set of built-in test cases or panics if an error occurs.

func (Set) Sorted

func (s Set) Sorted() Set

Sorted returns a sorted copy of s.

type TestCase

type TestCase struct {
	Filename      string                    `json:"-"                         yaml:"-"`                         // name of file that case was loaded from
	Note          string                    `json:"note"                      yaml:"note"`                      // globally unique identifier for this test case
	Query         string                    `json:"query"                     yaml:"query"`                     // policy query to execute
	Modules       []string                  `json:"modules,omitempty"         yaml:"modules,omitempty"`         // policies to test against
	Data          *map[string]interface{}   `json:"data,omitempty"            yaml:"data,omitempty"`            // data to test against
	Input         *interface{}              `json:"input,omitempty"           yaml:"input,omitempty"`           // parsed input data to use
	InputTerm     *string                   `json:"input_term,omitempty"      yaml:"input_term,omitempty"`      // raw input data (serialized as a string, overrides input)
	WantDefined   *bool                     `json:"want_defined,omitempty"    yaml:"want_defined,omitempty"`    // expect query result to be defined (or not)
	WantResult    *[]map[string]interface{} `json:"want_result,omitempty"     yaml:"want_result,omitempty"`     // expect query result (overrides defined)
	WantErrorCode *string                   `json:"want_error_code,omitempty" yaml:"want_error_code,omitempty"` // expect query error code (overrides result)
	WantError     *string                   `json:"want_error,omitempty"      yaml:"want_error,omitempty"`      // expect query error message (overrides error code)
	SortBindings  bool                      `json:"sort_bindings,omitempty"   yaml:"sort_bindings,omitempty"`   // indicates that binding values should be treated as sets
	StrictError   bool                      `json:"strict_error,omitempty"    yaml:"strict_error,omitempty"`    // indicates that the error depends on strict builtin error mode
	Env           map[string]string         `json:"env,omitempty"             yaml:"env,omitempty"`             // environment variables to be set during the test
}

TestCase represents a single test case.

Source Files

cases.go

Directories

PathSynopsis
v1/test/cases/internal
Version
v1.4.2 (latest)
Published
May 2, 2025
Platform
linux/amd64
Imports
5 packages
Last checked
3 weeks ago

Tools for package owners.