Documentation
¶
Index ¶
- func CleanSnapshots(m *testing.M)
- func CreateTestDir(t *testing.T) string
- func IsAcceptanceTesting() bool
- func LoadJSONFixture[V any](t *testing.T, path string) V
- func LoadJSONFixtureWithWindowsReplacements[V any](t *testing.T, path string, replacements map[string]string) V
- func Skip(t *testing.T, args ...any)
- func SkipIfNotAcceptanceTesting(t *testing.T, reason string)
- func ValueIfOnWindows(win, or string) string
- type MockHTTPServer
- func (m *MockHTTPServer) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (m *MockHTTPServer) SetAuthorization(t *testing.T, auth string)
- func (m *MockHTTPServer) SetResponse(t *testing.T, path string, response []byte)
- func (m *MockHTTPServer) SetResponseFromFile(t *testing.T, path string, filename string)
- type Snapshot
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CleanSnapshots ¶
CleanSnapshots ensures that snapshots are relevant and sorted for consistency
func CreateTestDir ¶
CreateTestDir makes a temporary directory for use in testing that involves writing and reading files from disk, which is automatically cleaned up when testing finishes
func IsAcceptanceTesting ¶
func IsAcceptanceTesting() bool
IsAcceptanceTesting returns true if the test suite is being run with acceptance tests enabled
func LoadJSONFixture ¶
LoadJSONFixture returns the contents of the fixture file parsed as JSON
func LoadJSONFixtureWithWindowsReplacements ¶
func LoadJSONFixtureWithWindowsReplacements[V any]( t *testing.T, path string, replacements map[string]string, ) V
LoadJSONFixtureWithWindowsReplacements returns the contents of the fixture file parsed as JSON after applying any replacements if running on Windows
func Skip ¶
Skip is equivalent to t.Log followed by t.SkipNow, but allows tracking of what snapshots are skipped so that they're not marked as obsolete
func SkipIfNotAcceptanceTesting ¶
SkipIfNotAcceptanceTesting marks the test as skipped unless the test suite is being run with acceptance tests enabled, as indicated by IsAcceptanceTesting
func ValueIfOnWindows ¶
Types ¶
type MockHTTPServer ¶
func NewMockHTTPServer ¶
func NewMockHTTPServer(t *testing.T) *MockHTTPServer
NewMockHTTPServer starts and returns a new simple HTTP Server for mocking basic requests. The Server will automatically be shut down with Close() in the test Cleanup function.
Use the SetResponse / SetResponseFromFile to set the responses for specific URL paths.
func (*MockHTTPServer) ServeHTTP ¶
func (m *MockHTTPServer) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP is the http.Handler for the underlying httptest.Server.
func (*MockHTTPServer) SetAuthorization ¶
func (m *MockHTTPServer) SetAuthorization(t *testing.T, auth string)
SetAuthorization sets the contents of the 'Authorization' header the server expects for all endpoints.
The incoming requests' headers must match the auth string exactly, otherwise the server will response with 401 Unauthorized. If authorization is unset or empty, the server will not require authorization.
func (*MockHTTPServer) SetResponse ¶
func (m *MockHTTPServer) SetResponse(t *testing.T, path string, response []byte)
SetResponse sets the Server's response for the URL path to be response bytes.
func (*MockHTTPServer) SetResponseFromFile ¶
func (m *MockHTTPServer) SetResponseFromFile(t *testing.T, path string, filename string)
SetResponseFromFile sets the Server's response for the URL path to be the contents of the file at filename.
type Snapshot ¶
type Snapshot struct {
// contains filtered or unexported fields
}
func NewSnapshot ¶
func NewSnapshot() Snapshot
NewSnapshot creates a snapshot that can be passed around within tests
func (Snapshot) MatchJSON ¶
MatchJSON asserts the existing snapshot matches what was gotten in the test, after being marshalled as JSON
func (Snapshot) MatchText ¶
MatchText asserts the existing snapshot matches what was gotten in the test
func (Snapshot) WithCRLFReplacement ¶
WithCRLFReplacement adds a Windows replacement for "\r\n" to "\n". This should be called after WithWindowsReplacements if used together.