Documentation ¶
Index ¶
Constants ¶
const SpecVersion int = 1
Variables ¶
This section is empty.
Functions ¶
func ValidateDefinition ¶
ValidateDefinition validates the definition and adds sensible defaults if needed
Types ¶
type Endpoint ¶
type Endpoint struct { Version int `json:"version" yaml:"version"` // Version is the version of the definition FileName string `yaml:"-" json:"-"` // FileName is the name of the file that contains the definition FullPath string `yaml:"-" json:"-"` // FullPath is the full path of the file that contains the definition Secrets map[string]any `yaml:"-" json:"-"` // Secrets are the secrets for this definition loaded from the secrets file IsEnabled bool `yaml:"-" json:"-"` // IsEnabled is a boolean that indicates if the endpoint is enabled (not contained in the definition) Name string `yaml:"name,omitempty" json:"name,omitempty" validate:"required"` // Name is the name of the endpoint BaseUrl string `yaml:"base_url,omitempty" json:"baseUrl,omitempty" validate:"required"` // BaseUrl is the base path of the endpoint Method string `yaml:"method,omitempty" json:"method,omitempty"` // Method is the name of the http-method to use for the request Payload map[string]any `yaml:"payload,omitempty" json:"payload,omitempty"` // Payload is the payload to use in case of a POST or PUT request Authorization string `yaml:"authorization,omitempty" json:"authorization,omitempty"` // Authorization is the value to set for the authorization header JwtLogin JwtLoginOptions `yaml:"jwt_login,omitempty" json:"jwt_login,omitempty"` // JwtLogin are options to auto-get a login token for a request. Headers map[string]string `yaml:"headers,omitempty" json:"headers,omitempty"` // Headers are additional headers to set for the request ExcludedValidators []string `yaml:"excluded_validators,omitempty" json:"excludedValidators,omitempty"` // ExcludedValidators is a list of validators that should not be used for this endpoint QueryParameters []QueryDefinition `yaml:"query_parameters,omitempty" json:"queryParameters,omitempty"` // QueryParameters are all the query parameters that should be added to the call Format string `yaml:"format,omitempty" json:"format,omitempty" validate:"required"` // Format is the response format of the Variables []Variable `yaml:"variables,omitempty" json:"variables,omitempty"` // Variables are all the variables that should be interpolated in the base url and the query parameters TestCaseNames []string `yaml:"test_case_names,omitempty" json:"test_case_names,omitempty"` OkCode int `yaml:"ok_code,omitempty" json:"ok_code,omitempty"` // The expected status code ResponseSchema any `yaml:"response_schema,omitempty" json:"responseSchema,omitempty" validate:"required"` // ResponseSchema describes how the response should look like }
Endpoint is the definition of an endpoint to test with all its query parameters, variables and its result schema
type JwtLoginOptions ¶
type JwtLoginOptions struct { Url string `yaml:"url" json:"url" validate:"required"` // Url is the url to the login endpoint LoginPayload map[string]any `yaml:"login_payload" json:"login_payload"` // LoginPayload is the json or yml payload to send TokenKeyName string `yaml:"token_key_name" json:"token_key_name"` // TokenKeyName is the name of the key in the response which contains the token }
JwtLoginOptions is the definition of optional authentication options for jwt
type QueryDefinition ¶
type QueryDefinition struct { Name string `yaml:"name" json:"name" validate:"required"` // Name is the name of the query parameter Value string `yaml:"value" json:"value" validate:"required"` // Value is the value of the query parameter }
QueryDefinition is a query parameter that should be added to the call
type Variable ¶
type Variable struct { Name string `yaml:"name" json:"name" validate:"required"` // Name is the name of the variable IsConstant bool `yaml:"constant" json:"constant" validate:"required"` // IsConstant is true if the value of the variable is constant or else false Values []string `yaml:"values" json:"values" validate:"required"` // Values are all the possible values of the variable (only 1 in case of a constant) }
Variable describes a variable that should be interpolated in the base url and the query parameters
type VariableMap ¶
VariableMap is a map of variables that will be generated from a collection of EndpointParameter and will be used when executing the go template
func (VariableMap) Env ¶
func (m VariableMap) Env(key string) string
Env is a function that returns the value of a given environment variable
func (VariableMap) Now ¶
func (m VariableMap) Now(format string) string
Now is a function that returns the current time in the given format (see Time.Format)