Documentation
¶
Overview ¶
Package tests provides common helpers and mocks used in PocketBase application tests.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MockLogsData ¶
func MockMultipartData ¶
func MockMultipartData(data map[string]string, fileFields ...string) (*bytes.Buffer, *multipart.Writer, error)
MockMultipartData creates a mocked multipart/form-data payload.
Example
data, mp, err := tests.MockMultipartData(
map[string]string{"title": "new"},
"file1",
"file2",
...
)
func TempDirClone ¶
TempDirClone creates a new temporary directory copy from the provided directory path.
It is the caller's responsibility to call `os.RemoveAll(tempDir)` when the directory is no longer needed!
Types ¶
type ApiScenario ¶
type ApiScenario struct {
Name string
Method string
Url string
Body io.Reader
RequestHeaders map[string]string
// Delay adds a delay before checking the expectations usually
// to ensure that all fired non-awaited go routines have finished
Delay time.Duration
// Timeout specifies how long to wait before cancelling the request context.
//
// A zero or negative value means that there will be no timeout.
Timeout time.Duration
// expectations
// ---
ExpectedStatus int
ExpectedContent []string
NotExpectedContent []string
ExpectedEvents map[string]int
// test hooks
// ---
TestAppFactory func(t *testing.T) *TestApp
BeforeTestFunc func(t *testing.T, app *TestApp, e *echo.Echo)
AfterTestFunc func(t *testing.T, app *TestApp, res *http.Response)
}
ApiScenario defines a single api request test case/scenario.
func (*ApiScenario) Test ¶
func (scenario *ApiScenario) Test(t *testing.T)
Test executes the test scenario.
type TestApp ¶
type TestApp struct {
*core.BaseApp
// EventCalls defines a map to inspect which app events
// (and how many times) were triggered.
//
// The following events are not counted because they execute always:
// - OnBeforeBootstrap
// - OnAfterBootstrap
// - OnBeforeServe
EventCalls map[string]int
TestMailer *TestMailer
// contains filtered or unexported fields
}
TestApp is a wrapper app instance used for testing.
func NewTestApp ¶
NewTestApp creates and initializes a test application instance.
It is the caller's responsibility to call `app.Cleanup()` when the app is no longer needed.
func (*TestApp) Cleanup ¶
func (t *TestApp) Cleanup()
Cleanup resets the test application state and removes the test app's dataDir from the filesystem.
After this call, the app instance shouldn't be used anymore.
func (*TestApp) NewMailClient ¶
NewMailClient initializes (if not already) a test app mail client.
func (*TestApp) ResetEventCalls ¶
func (t *TestApp) ResetEventCalls()
ResetEventCalls resets the EventCalls counter.
type TestMailer ¶
type TestMailer struct {
TotalSend int
LastMessage mailer.Message
// @todo consider deprecating the above 2 fields?
SentMessages []mailer.Message
// contains filtered or unexported fields
}
TestMailer is a mock `mailer.Mailer` implementation.
func (*TestMailer) Reset ¶
func (tm *TestMailer) Reset()
Reset clears any previously test collected data.