diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-05-14 18:52:12 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-05-14 18:52:12 -0700 |
commit | 9554d0bd53e02e6844e5e8811c3e8557fd0b7d17 (patch) | |
tree | 6b280f89d69e19501feda1c794b55b3a58d2f3b1 | |
parent | e81e4f0ac34569f9ab3f05b33fb05125c1d52026 (diff) |
Add integration test for /me endpoint
-rw-r--r-- | Gopkg.lock | 2 | ||||
-rw-r--r-- | integration_test.go | 16 | ||||
-rw-r--r-- | vendor/github.com/miniflux/miniflux-go/client.go | 17 | ||||
-rw-r--r-- | vendor/github.com/miniflux/miniflux-go/request.go | 17 |
4 files changed, 43 insertions, 9 deletions
@@ -45,7 +45,7 @@ branch = "master" name = "github.com/miniflux/miniflux-go" packages = ["."] - revision = "7939463a4e1a1c5392d026d8d28bf7732459abd7" + revision = "8863d558cbf1f20beeb640328829205971f1a632" [[projects]] name = "github.com/tdewolff/minify" diff --git a/integration_test.go b/integration_test.go index 88ecfa6..a26fe57 100644 --- a/integration_test.go +++ b/integration_test.go @@ -44,6 +44,22 @@ func TestWithWrongCredentials(t *testing.T) { } } +func TestGetCurrentLoggedUser(t *testing.T) { + client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword) + user, err := client.Me() + if err != nil { + t.Fatal(err) + } + + if user.ID == 0 { + t.Fatalf(`Invalid userID, got %q`, user.ID) + } + + if user.Username != testAdminUsername { + t.Fatalf(`Invalid username, got %q`, user.Username) + } +} + func TestGetUsers(t *testing.T) { client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword) users, err := client.Users() diff --git a/vendor/github.com/miniflux/miniflux-go/client.go b/vendor/github.com/miniflux/miniflux-go/client.go index 7b6a847..5f5155d 100644 --- a/vendor/github.com/miniflux/miniflux-go/client.go +++ b/vendor/github.com/miniflux/miniflux-go/client.go @@ -18,6 +18,23 @@ type Client struct { request *request } +// Me returns the logged user information. +func (c *Client) Me() (*User, error) { + body, err := c.request.Get("/v1/me") + if err != nil { + return nil, err + } + defer body.Close() + + var user *User + decoder := json.NewDecoder(body) + if err := decoder.Decode(&user); err != nil { + return nil, fmt.Errorf("miniflux: json error (%v)", err) + } + + return user, nil +} + // Users returns all users. func (c *Client) Users() (Users, error) { body, err := c.request.Get("/v1/users") diff --git a/vendor/github.com/miniflux/miniflux-go/request.go b/vendor/github.com/miniflux/miniflux-go/request.go index cae4df7..b472f0c 100644 --- a/vendor/github.com/miniflux/miniflux-go/request.go +++ b/vendor/github.com/miniflux/miniflux-go/request.go @@ -22,11 +22,12 @@ const ( defaultTimeout = 80 ) +// List of exposed errors. var ( - errNotAuthorized = errors.New("miniflux: unauthorized (bad credentials)") - errForbidden = errors.New("miniflux: access forbidden") - errServerError = errors.New("miniflux: internal server error") - errNotFound = errors.New("miniflux: resource not found") + ErrNotAuthorized = errors.New("miniflux: unauthorized (bad credentials)") + ErrForbidden = errors.New("miniflux: access forbidden") + ErrServerError = errors.New("miniflux: internal server error") + ErrNotFound = errors.New("miniflux: resource not found") ) type errorResponse struct { @@ -93,13 +94,13 @@ func (r *request) execute(method, path string, data interface{}) (io.ReadCloser, switch response.StatusCode { case http.StatusUnauthorized: - return nil, errNotAuthorized + return nil, ErrNotAuthorized case http.StatusForbidden: - return nil, errForbidden + return nil, ErrForbidden case http.StatusInternalServerError: - return nil, errServerError + return nil, ErrServerError case http.StatusNotFound: - return nil, errNotFound + return nil, ErrNotFound case http.StatusBadRequest: defer response.Body.Close() |