testutils

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const MockVersionString = "0.0.0"

MockVersionString is used as a temporary version string in tests

Variables

View Source
var MockPrompt1 = NewMockPrompt("prompt1", "", prompts.Arguments{})
View Source
var MockPrompt2 = NewMockPrompt("prompt2", "", prompts.Arguments{
	{Parameter: parameters.NewStringParameter("arg1", "This is the first argument.")},
})
View Source
var MockResource1 = NewMockResource("mock_resource_1", "file:///mock/resource/1", "", "", "", nil, nil)
View Source
var MockResource2 = NewMockResource("mock_resource_2", "text:///mock/resource/2", "", "", "", nil, nil)
View Source
var MockTemplate1 = NewMockResourceTemplate("mock_template_1", "file://{path}", "", "", "", nil)
View Source
var MockTemplate2 = NewMockResourceTemplate("mock_template_2", "file:///logs/{path}", "", "", "", nil)
View Source
var MockTool1 = NewMockTool("no_params", "", "", []parameters.Parameter{}, false, false)
View Source
var MockTool2 = NewMockTool(
	"some_params",
	"", "",
	parameters.Parameters{
		parameters.NewIntParameter("param1", "This is the first parameter."),
		parameters.NewIntParameter("param2", "This is the second parameter."),
	}, false, false)
View Source
var MockTool3 = NewMockTool(
	"array_param", "some description", "",
	parameters.Parameters{
		parameters.NewArrayParameter("my_array", "this param is an array of strings", parameters.NewStringParameter("my_string", "string item")),
	}, false, false)
View Source
var MockTool4 = NewMockTool("unauthorized_tool", "", "", []parameters.Parameter{}, true, false)
View Source
var MockTool5 = NewMockTool("require_client_auth_tool", "", "", []parameters.Parameter{}, false, true)
View Source
var MockToolUrlBinding = func() MockTool {
	t := NewMockTool(
		"url_binding_tool",
		"A tool for testing URL param binding", "",
		parameters.Parameters{
			parameters.NewStringParameter("param1", "A bound string param"),
			parameters.NewIntParameter("param2", "A bound int param"),
			parameters.NewBooleanParameter("param3", "A bound bool param"),
			parameters.NewFloatParameter("param4", "A bound float param"),
			parameters.NewStringParameter("param5", "An unbound string param"),
			parameters.NewArrayParameter("param6", "A bound array param", parameters.NewStringParameter("item", "item")),
			parameters.NewMapParameter("param7", "A bound map param", parameters.TypeString),
		}, false, false)
	t.ReturnParamsInInvoke = true
	return t
}()

Functions

func BoolPtr added in v1.11.0

func BoolPtr(b bool) *bool

BoolPtr returns a pointer to the given bool, for constructing optional boolean config fields in tests.

func ContextWithNewLogger

func ContextWithNewLogger() (context.Context, error)

ContextWithNewLogger create a new context with new logger

func ContextWithUserAgent

func ContextWithUserAgent(ctx context.Context, userAgent string) context.Context

ContextWithUserAgent creates a new context with a specified user agent string.

func FormatYaml

func FormatYaml(in string) []byte

formatYaml is a utility function for stripping out tabs in multiline strings

func RegisterMockResource added in v1.11.0

func RegisterMockResource()

RegisterMockResource registers the mock resource type with the resources package.

func SetUpPrimitives added in v1.11.0

func SetUpPrimitives(t *testing.T, mockTools []MockTool, mockPrompts []MockPrompt, mockResources []MockResource, mockResourceTemplates []MockResourceTemplate) (map[string]tools.Tool, map[string]prompts.Prompt, map[string]resources.Resource, map[string]resources.ResourceTemplate, map[string]group.Group)

SetUpPrimitives setups resources to test against. The returned groups map is the source of truth used by PrimitiveManager; assert group membership via groups[name].ContainsTool / ContainsPrompt.

func WaitForString

func WaitForString(ctx context.Context, re *regexp.Regexp, pr io.ReadCloser) (string, error)

WaitForString waits until the server logs a single line that matches the provided regex. returns the output of whatever the server sent so far.

Types

type MockPrompt added in v1.2.0

type MockPrompt struct {
	Name        string
	Description string
	Args        prompts.Arguments
	// contains filtered or unexported fields
}

MockPrompt is used to mock prompts in tests

func NewMockPrompt added in v1.2.0

func NewMockPrompt(name, desc string, args prompts.Arguments) MockPrompt

NewMockPrompt creates a new mock prompt for testing.

func (MockPrompt) GetArguments added in v1.3.0

func (p MockPrompt) GetArguments() prompts.Arguments

func (MockPrompt) GetDesc added in v1.3.0

func (p MockPrompt) GetDesc() string

func (MockPrompt) Manifest added in v1.2.0

func (p MockPrompt) Manifest() prompts.Manifest

func (MockPrompt) ParseArgs added in v1.2.0

func (p MockPrompt) ParseArgs(data map[string]any, claimsMap map[string]map[string]any) (parameters.ParamValues, error)

func (MockPrompt) SubstituteParams added in v1.2.0

func (p MockPrompt) SubstituteParams(vals parameters.ParamValues) (any, error)

func (MockPrompt) ToConfig added in v1.2.0

func (p MockPrompt) ToConfig() prompts.PromptConfig

type MockResource added in v1.11.0

type MockResource struct {
	// contains filtered or unexported fields
}

MockResource is a mock implementation of resources.Resource

func NewMockResource added in v1.11.0

func NewMockResource(name, uri, title, description, mimeType string, size *int64, annotations *resources.ResourceAnnotations) MockResource

func NewMockUIResource added in v1.11.0

func NewMockUIResource(name, uri, title, description, mimeType string, size *int64, annotations *resources.ResourceAnnotations, csp *resources.CSPConfig, permissions *resources.PermissionsConfig, domain string, prefersBorder *bool) MockResource

NewMockUIResource creates a mock UI resource for testing.

func (MockResource) GetAnnotations added in v1.11.0

func (m MockResource) GetAnnotations() *resources.ResourceAnnotations

func (MockResource) GetDescription added in v1.11.0

func (m MockResource) GetDescription() string

func (MockResource) GetMimeType added in v1.11.0

func (m MockResource) GetMimeType() string

func (MockResource) GetName added in v1.11.0

func (m MockResource) GetName() string

func (MockResource) GetResourceUIMetadata added in v1.11.0

func (m MockResource) GetResourceUIMetadata() any

func (MockResource) GetSize added in v1.11.0

func (m MockResource) GetSize() *int64

func (MockResource) GetTitle added in v1.11.0

func (m MockResource) GetTitle() string

func (MockResource) GetURI added in v1.11.0

func (m MockResource) GetURI() string

func (MockResource) IsUI added in v1.11.0

func (m MockResource) IsUI() bool

func (MockResource) Read added in v1.11.0

func (m MockResource) Read(ctx context.Context, params map[string]any) (any, error)

func (MockResource) ToConfig added in v1.11.0

func (m MockResource) ToConfig() resources.ResourceConfig

type MockResourceConfig added in v1.11.0

type MockResourceConfig struct {
	resources.ResourceConfigBase `yaml:",inline"`
	Size                         *int64 `yaml:"-"`
}

MockResourceConfig is a mock implementation of resources.ResourceConfig

func (*MockResourceConfig) Initialize added in v1.11.0

func (m *MockResourceConfig) Initialize(ctx context.Context) (resources.Resource, error)

func (*MockResourceConfig) ResourceConfigType added in v1.11.0

func (m *MockResourceConfig) ResourceConfigType() string

type MockResourceTemplate added in v1.11.0

type MockResourceTemplate struct {
	// contains filtered or unexported fields
}

MockResourceTemplate is a mock implementation of resources.ResourceTemplate

func NewMockResourceTemplate added in v1.11.0

func NewMockResourceTemplate(name, uriTemplate, title, description, mimeType string, annotations *resources.ResourceAnnotations) MockResourceTemplate

func NewMockUIResourceTemplate added in v1.11.0

func NewMockUIResourceTemplate(name, uriTemplate, title, description, mimeType string, annotations *resources.ResourceAnnotations, csp *resources.CSPConfig, permissions *resources.PermissionsConfig, domain string, prefersBorder *bool) MockResourceTemplate

NewMockUIResourceTemplate creates a mock UI resource template for testing.

func (MockResourceTemplate) GetAnnotations added in v1.11.0

func (MockResourceTemplate) GetDescription added in v1.11.0

func (m MockResourceTemplate) GetDescription() string

func (MockResourceTemplate) GetMimeType added in v1.11.0

func (m MockResourceTemplate) GetMimeType() string

func (MockResourceTemplate) GetName added in v1.11.0

func (m MockResourceTemplate) GetName() string

func (MockResourceTemplate) GetResourceUIMetadata added in v1.11.0

func (m MockResourceTemplate) GetResourceUIMetadata() any

func (MockResourceTemplate) GetTitle added in v1.11.0

func (m MockResourceTemplate) GetTitle() string

func (MockResourceTemplate) GetURITemplate added in v1.11.0

func (m MockResourceTemplate) GetURITemplate() string

func (MockResourceTemplate) IsUI added in v1.11.0

func (m MockResourceTemplate) IsUI() bool

func (MockResourceTemplate) Read added in v1.11.0

func (m MockResourceTemplate) Read(ctx context.Context, params map[string]any) (any, error)

func (MockResourceTemplate) ToConfig added in v1.11.0

type MockResourceTemplateConfig added in v1.11.0

type MockResourceTemplateConfig struct {
	resources.ResourceTemplateConfigBase `yaml:",inline"`
}

MockResourceTemplateConfig is a mock implementation of resources.ResourceTemplateConfig

func (*MockResourceTemplateConfig) Initialize added in v1.11.0

func (*MockResourceTemplateConfig) ResourceTemplateConfigType added in v1.11.0

func (m *MockResourceTemplateConfig) ResourceTemplateConfigType() string

type MockSource added in v1.8.0

type MockSource struct {
	MockSourceConfig
}

MockSource is used to mock source in tests

func (MockSource) IsReadOnly added in v1.10.0

func (s MockSource) IsReadOnly() bool

func (MockSource) SourceType added in v1.8.0

func (s MockSource) SourceType() string

func (MockSource) ToConfig added in v1.8.0

func (s MockSource) ToConfig() sources.SourceConfig

type MockSourceConfig added in v1.8.0

type MockSourceConfig struct {
	Name     string `yaml:"name"`
	Type     string `yaml:"type"`
	Foo      string `yaml:"foo"`
	ReadOnly bool   `yaml:"readOnly"`
}

MockSourceConfig is used to mock source config in tests

func (MockSourceConfig) Initialize added in v1.8.0

func (m MockSourceConfig) Initialize(ctx context.Context, tracer trace.Tracer) (sources.Source, error)

func (MockSourceConfig) SourceConfigType added in v1.8.0

func (m MockSourceConfig) SourceConfigType() string

type MockTool added in v1.2.0

type MockTool struct {
	tools.BaseTool[MockToolConfig]

	ReturnParamsInInvoke bool
	// contains filtered or unexported fields
}

MockTool is used to mock tools in tests

func NewMockTool added in v1.2.0

func NewMockTool(name, desc, source string, params []parameters.Parameter, unauthorized, reqClientAutho bool) MockTool

NewMockTool creates a new mock prompt for testing.

func NewMockToolWithUI added in v1.11.0

func NewMockToolWithUI(name, desc, source string, params []parameters.Parameter, unauthorized, reqClientAutho bool, uiResource string) MockTool

NewMockToolWithUI creates a new mock tool with UI metadata for testing.

func (MockTool) Authorized added in v1.2.0

func (t MockTool) Authorized(verifiedAuthServices []string) bool

func (MockTool) GetAuthTokenHeaderName added in v1.2.0

func (t MockTool) GetAuthTokenHeaderName(sources.Source) (string, error)

func (MockTool) GetScopesRequired added in v1.3.0

func (t MockTool) GetScopesRequired() []string

func (MockTool) GetSourceName added in v1.8.0

func (t MockTool) GetSourceName() string

func (MockTool) HasSecureParams added in v1.10.0

func (t MockTool) HasSecureParams() bool

func (MockTool) Invoke added in v1.2.0

func (MockTool) ParseParams added in v1.2.0

func (t MockTool) ParseParams(data map[string]any, claimsMap map[string]map[string]any) (parameters.ParamValues, error)

claims is a map of user info decoded from an auth token

func (MockTool) RequiresClientAuthorization added in v1.2.0

func (t MockTool) RequiresClientAuthorization(sources.Source) (bool, error)

func (MockTool) ToConfig added in v1.2.0

func (t MockTool) ToConfig() tools.ToolConfig

func (MockTool) ValidateSource added in v1.8.0

func (t MockTool) ValidateSource(src sources.Source) error

type MockToolConfig added in v1.8.0

type MockToolConfig struct {
	tools.ConfigBase `yaml:",inline"`
	Source           string                 `yaml:"source"`
	Parameters       parameters.Parameters  `yaml:"parameters"`
	Type             string                 `yaml:"type"`
	Annotations      *tools.ToolAnnotations `yaml:"annotations,omitempty"`
}

MockToolConfig is used to mock tool config in tests

func (MockToolConfig) Initialize added in v1.8.0

func (m MockToolConfig) Initialize(context.Context) (tools.Tool, error)

func (MockToolConfig) ToolConfigType added in v1.8.0

func (m MockToolConfig) ToolConfigType() string

Jump to

Keyboard shortcuts

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