Documentation ¶
Index ¶
- Variables
- type Endpoint
- type Option
- type RequestLogger
- type SentinelError
- type ValidatingClient
- func (v *ValidatingClient) Delete(url string) (resp *http.Response, err error)
- func (v *ValidatingClient) Do(r *http.Request) (*http.Response, error)
- func (v *ValidatingClient) Get(url string) (resp *http.Response, err error)
- func (v *ValidatingClient) Head(url string) (resp *http.Response, err error)
- func (v *ValidatingClient) Post(url string, contentType string, body io.Reader) (resp *http.Response, err error)
- func (v *ValidatingClient) Put(url string, contentType string, body io.Reader) (resp *http.Response, err error)
- func (v *ValidatingClient) WithClient(c *http.Client) (*ValidatingClient, error)
- type VerificationError
- type Verifier
Constants ¶
This section is empty.
Variables ¶
var ( ErrNotChecked = SentinelError{"not checked"} ErrNotPartOfSpec = SentinelError{"not part of spec"} ErrResponseInvalid = SentinelError{"response invalid"} ErrRequestInvalid = SentinelError{"request invalid"} )
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option func(c *config)
func WithInternalServerErrors ¶ added in v0.3.0
func WithInternalServerErrors() Option
WithInternalServerErrors is a functional Option for also validating server responses. These are skipped by default since a server should not ideally have internal server errors, and even if they are not part of a specification, they considered a possible response from an API.
func WithRequestLogging ¶ added in v0.6.0
func WithRequestLogging(l RequestLogger) Option
WithRequestLogging is a functional Option that provides a logger that copper will use to log out requests and responses. This can be useful for debugging, or writing initial tests for an endpoint, but will add quite a lot of log output for larger test suites.
func WithRequestValidation ¶ added in v0.5.0
func WithRequestValidation() Option
WithRequestValidation is a functional Option for checking request parameters and bodies as they are sent. Doing validation of the request by default might conflict with checking error cases (400 responses specifically), so it does not happen by default. Enabling checking will produce an error for each request that is not in accordance with the specification for that endpoint.
func WithServer ¶ added in v0.9.0
WithServer is a functional Option for setting the base path/host used when correlating the specification to the API calls being recorded. This can be used when the specification doesn't have a server entry for the target of tests, or when conflicts cause the wrong server to be selected for calculating the base path.
func WithoutFullCoverage ¶ added in v0.7.0
func WithoutFullCoverage() Option
WithoutFullCoverage is a functional Option for disabling verification that full coverage of the API has been accomplished. Full coverage is defined as having a test covering all documented response codes for all documented endpoint paths and methods. Using this option will still verify that no undocumented endpoints have been hit, as well as checking schemas for all valid interactions.
type RequestLogger ¶ added in v0.6.0
RequestLogger is a minimal interface that can fit for example a testing.T, allowing tests to easily print logs where needed.
type SentinelError ¶ added in v0.3.0
type SentinelError struct {
// contains filtered or unexported fields
}
func (SentinelError) Error ¶ added in v0.3.0
func (s SentinelError) Error() string
type ValidatingClient ¶
type ValidatingClient struct { *Verifier // contains filtered or unexported fields }
ValidatingClient provides an HTTP client, and wraps the main methods, recording any and all paths that are being called.
func WrapClient ¶
WrapClient takes an HTTP client and io.Reader for the OpenAPI spec. The spec is parsed, and wraps the client so that the outbound calls are now recorded when made.
func (*ValidatingClient) Delete ¶
func (v *ValidatingClient) Delete(url string) (resp *http.Response, err error)
Delete records response for HTTP DELETE requests
func (*ValidatingClient) Do ¶
Do takes any http.Request, sends it to the server it and then records the result.
func (*ValidatingClient) Get ¶
func (v *ValidatingClient) Get(url string) (resp *http.Response, err error)
Get is a convenience method for recording responses for HTTP GET requests
func (*ValidatingClient) Head ¶
func (v *ValidatingClient) Head(url string) (resp *http.Response, err error)
Head is a convenience method for recording responses for HTTP HEAD requests
func (*ValidatingClient) Post ¶
func (v *ValidatingClient) Post(url string, contentType string, body io.Reader) (resp *http.Response, err error)
Post is a convenience method for recording responses for HTTP POST requests
func (*ValidatingClient) Put ¶
func (v *ValidatingClient) Put(url string, contentType string, body io.Reader) (resp *http.Response, err error)
Put is a convenience method for recording responses for HTTP PUT requests
func (*ValidatingClient) WithClient ¶
func (v *ValidatingClient) WithClient(c *http.Client) (*ValidatingClient, error)
WithClient returns a new client using the same validator, but a new client. This can be useful to change transport or authorization settings, while still contributing to the same spec validation.
type VerificationError ¶ added in v0.3.0
type VerificationError struct {
// contains filtered or unexported fields
}
func (*VerificationError) Error ¶ added in v0.3.0
func (v *VerificationError) Error() string
func (*VerificationError) Sentinel ¶ added in v0.3.0
func (v *VerificationError) Sentinel() error
func (*VerificationError) Unwrap ¶ added in v0.3.0
func (v *VerificationError) Unwrap() []error
type Verifier ¶
type Verifier struct {
// contains filtered or unexported fields
}
func NewVerifier ¶
NewVerifier takes bytes for an OpenAPI spec and options, and then returns a new Verifier for the given spec. Supply zero or more Option instances to change the behaviour of the Verifier.
func (*Verifier) CurrentError ¶ added in v0.3.0
CurrentError is a convenience method for CurrentErrors, where the errors are joined into a single error, making it easier to check.
func (*Verifier) CurrentErrors ¶ added in v0.3.0
CurrentErrors return the current collection of errors in the verifier.