Documentation
¶
Index ¶
- func TeeReadCloser(r io.ReadCloser, w io.Writer) io.ReadCloser
- type APITester
- func (tester *APITester) APITest(name ...string) *apitest.APITest
- func (tester *APITester) Close()
- func (tester *APITester) CreateTemplate(username string, body, response *models.Template)
- func (tester *APITester) CreateUser(username, password string)
- func (tester *APITester) Debug()
- func (tester *APITester) Do(req *http.Request) (*http.Response, error)
- func (tester *APITester) DoJSONRequest(verb, url string, body interface{}, response interface{}) (int, error)
- func (tester *APITester) DoJSONRequestCtx(ctx context.Context, verb, url string, body, response interface{}) (int, error)
- func (tester *APITester) DoRequest(verb, url, body string) (int, string, error)
- func (tester *APITester) DoRequestCtx(ctx context.Context, verb, url, body string) (int, string, error)
- func (tester *APITester) DoWithPayload(verb, url string)
- func (tester *APITester) ForgotPassword(body *auth.ForgotPasswordBody)
- func (tester *APITester) Get(url string) (int, string, error)
- func (tester *APITester) GetJSON(url string, obj interface{}) (int, error)
- func (tester *APITester) GetUser(username string, user *models.Userinfo)
- func (tester *APITester) GetUserInfo() models.Userinfo
- func (tester *APITester) HandleRequest(req *http.Request) *httptest.ResponseRecorder
- func (tester *APITester) ListEngines() string
- func (tester *APITester) ListUsers(users *[]*models.Userinfo)
- func (tester *APITester) Login(username, password string)
- func (tester *APITester) Logout()
- func (tester *APITester) MustDoJSONRequest(verb, url string, body interface{}, response interface{}) int
- func (tester *APITester) MustDoJSONRequestCtx(ctx context.Context, verb, url string, body, response interface{}) int
- func (tester *APITester) MustDoRequest(verb, url, body string) (int, string)
- func (tester *APITester) MustGet(url string) (int, string)
- func (tester *APITester) MustGetJSON(url string, obj interface{}) int
- func (tester *APITester) MustGetJSONCtx(ctx context.Context, url string, obj interface{}) int
- func (tester *APITester) MustPost(url string, body string) (int, string)
- func (tester *APITester) MustPostJSON(url string, body, response interface{}) int
- func (tester *APITester) MustPostJSONCtx(ctx context.Context, url string, body, response interface{}) int
- func (tester *APITester) MustPut(url string, body string) (int, string)
- func (tester *APITester) MustPutJSON(url string, body interface{}, response interface{}) int
- func (tester *APITester) Now() time.Time
- func (tester *APITester) Post(url string, body string) (int, string, error)
- func (tester *APITester) PostJSON(url string, body interface{}, response interface{}) (int, error)
- func (tester *APITester) Put(url string, body string) (int, string, error)
- func (tester *APITester) PutJSON(url string, body interface{}, response interface{}) (int, error)
- func (tester *APITester) Register(reg *models.Registration)
- func (tester *APITester) Render(data *models.RenderRequest, result *[]*models.Document)
- func (tester *APITester) RenderLogs(period string) string
- func (tester *APITester) ResetNow()
- func (tester *APITester) ResetPassword(body *auth.ResetPasswordBody)
- func (tester *APITester) Run(name string, run func(t *testing.T)) bool
- func (tester *APITester) ServeHTTP(rw http.ResponseWriter, req *http.Request)
- func (tester *APITester) SetHeader(key, value string)
- func (tester *APITester) SetNow(t time.Time)
- func (tester *APITester) SetPassword(username, password string)
- func (tester *APITester) SetT(t *testing.T) func()
- func (tester *APITester) UpdateTemplate(username, templateName string, body, response *models.Template)
- func (tester *APITester) Varlist(tmpl *models.Template) []string
- type JSONObj
- type ServerOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TeeReadCloser ¶
func TeeReadCloser(r io.ReadCloser, w io.Writer) io.ReadCloser
Types ¶
type APITester ¶
type APITester struct { TestLogger *testutils.TestLogger Logger zerolog.Logger DB *database.TestDB Config restapi.APIConfig // contains filtered or unexported fields }
APITester provides facilities to unittest the RednerD rest api.
func NewAPITester ¶
func NewAPITester( ctx context.Context, t *testing.T, engineOptions *cmd.EngineOptions, serverOptions ...ServerOption, ) *APITester
NewAPITester setup a APITester. false positive on thelper that I can't figure out. it should allow t *testing.T param to be second here but weirdly does not.
func (*APITester) Close ¶
func (tester *APITester) Close()
Close releases all underlying resources. MUST be called, preferably with defer.
func (*APITester) CreateTemplate ¶
CreateTemplate creates a new template associated to an Account.
func (*APITester) CreateUser ¶
CreateUser creates a new user and sets its password.
func (*APITester) Debug ¶
func (tester *APITester) Debug()
Debug() method checks the debug boolean. used to put Debug() on apitester calls, to see more informations.
func (*APITester) DoJSONRequest ¶
func (tester *APITester) DoJSONRequest(verb, url string, body interface{}, response interface{}) (int, error)
DoJSONRequest creates and run request.
func (*APITester) DoJSONRequestCtx ¶
func (tester *APITester) DoJSONRequestCtx( ctx context.Context, verb, url string, body, response interface{}, ) (int, error)
DoJSONRequestCtx creates and run request. Needs a context.
func (*APITester) DoRequest ¶
DoRequest creates and run request.
func (*APITester) DoRequestCtx ¶
func (tester *APITester) DoRequestCtx(ctx context.Context, verb, url, body string) (int, string, error)
DoRequestCtx creates and run request. Needs a context.
func (*APITester) DoWithPayload ¶
DoWithPayload creates and run request that takes a payload.
func (*APITester) ForgotPassword ¶
func (tester *APITester) ForgotPassword(body *auth.ForgotPasswordBody)
ForgotPassword sends an email to the user to reset his password.
func (*APITester) Get ¶
Get runs a GET request.
func (*APITester) GetJSON ¶
GetJSON runs a GET request and parse the result as JSON.
func (*APITester) GetUser ¶
GetUser returns the uer by username.
func (*APITester) GetUserInfo ¶
GetUserInfo returns the connected user information.
func (*APITester) HandleRequest ¶
func (tester *APITester) HandleRequest(req *http.Request) *httptest.ResponseRecorder
HandleRequest pass a request through the handler.
func (*APITester) ListUsers ¶
ListUsers returns all the users.
func (*APITester) Login ¶
Login authenticates the user for the subsequent requests.
func (*APITester) Logout ¶
func (tester *APITester) Logout()
Logout resets the "Authorization" headers.
func (*APITester) MustDoJSONRequest ¶
func (tester *APITester) MustDoJSONRequest(verb, url string, body interface{}, response interface{}) int
MustDoJSONRequest creates and run request that takes no payload.
func (*APITester) MustDoJSONRequestCtx ¶
func (tester *APITester) MustDoJSONRequestCtx( ctx context.Context, verb, url string, body, response interface{}, ) int
MustDoJSONRequestCtx creates and run request that takes no payload. Needs a context.
func (*APITester) MustDoRequest ¶
MustDoRequest ...
func (*APITester) MustGet ¶
MustGet runs a GET request an panics if it fails.
func (*APITester) MustGetJSON ¶
MustGetJSON runs a GET request, parse the result as JSON and panic on any error.
func (*APITester) MustGetJSONCtx ¶
MustGetJSONCtx runs a GET request, parse the result as JSON and panic on any error. Needs a context.
func (*APITester) MustPost ¶
MustPost runs a POST request and panic if it fails.
func (*APITester) MustPostJSON ¶
MustPostJSON is like PostJSON but stops the test on failure.
func (*APITester) MustPostJSONCtx ¶
func (tester *APITester) MustPostJSONCtx( ctx context.Context, url string, body, response interface{}, ) int
MustPostJSONCtx is like PostJSON but stops the test on failure. Needs a context.
func (*APITester) MustPut ¶
MustPut runs a POST request and panic if it fails.
func (*APITester) MustPutJSON ¶
MustPutJSON is like PutJSON but stops the test on failure.
func (*APITester) Post ¶
Post runs a POST request.
func (*APITester) PostJSON ¶
PostJSON runs a POST request with given input marshalled as JSON and responsed unmarshalled from JSON.
func (*APITester) Put ¶
Put runs a POST request.
func (*APITester) PutJSON ¶
PutJSON runs a POST request with given input marshalled as JSON and responsed unmarshalled from JSON.
func (*APITester) Register ¶
func (tester *APITester) Register(reg *models.Registration)
Register registers the user to the API.
func (*APITester) Render ¶
func (tester *APITester) Render( data *models.RenderRequest, result *[]*models.Document, )
Render renders some data and returns a document.
func (*APITester) RenderLogs ¶
Renderlogs gives us a csv document containing the Rendering data for invoicing.
func (*APITester) ResetPassword ¶
func (tester *APITester) ResetPassword(body *auth.ResetPasswordBody)
ResetPassword reset the password.
func (*APITester) Run ¶
Run runs the test as t.Run would, and call SetTB in addition.
func (*APITester) ServeHTTP ¶
func (tester *APITester) ServeHTTP(rw http.ResponseWriter, req *http.Request)
func (*APITester) SetHeader ¶
SetHeader sets a header for all subsequent requests.
func (*APITester) SetNow ¶
sets the tester current time to another value. Warning: the API now does not change with this method. Only way of changing the API time is to recreate an APITester.
func (*APITester) SetPassword ¶
SetPassword sets the user's password.
func (*APITester) SetT ¶
SetT switch the current t and returns a func that restore the initial one.