mirror of https://github.com/miniflux/v2.git
Add integration test for /me endpoint
This commit is contained in:
parent
e81e4f0ac3
commit
9554d0bd53
|
@ -45,7 +45,7 @@
|
||||||
branch = "master"
|
branch = "master"
|
||||||
name = "github.com/miniflux/miniflux-go"
|
name = "github.com/miniflux/miniflux-go"
|
||||||
packages = ["."]
|
packages = ["."]
|
||||||
revision = "7939463a4e1a1c5392d026d8d28bf7732459abd7"
|
revision = "8863d558cbf1f20beeb640328829205971f1a632"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
name = "github.com/tdewolff/minify"
|
name = "github.com/tdewolff/minify"
|
||||||
|
|
|
@ -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) {
|
func TestGetUsers(t *testing.T) {
|
||||||
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
client := miniflux.NewClient(testBaseURL, testAdminUsername, testAdminPassword)
|
||||||
users, err := client.Users()
|
users, err := client.Users()
|
||||||
|
|
|
@ -18,6 +18,23 @@ type Client struct {
|
||||||
request *request
|
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.
|
// Users returns all users.
|
||||||
func (c *Client) Users() (Users, error) {
|
func (c *Client) Users() (Users, error) {
|
||||||
body, err := c.request.Get("/v1/users")
|
body, err := c.request.Get("/v1/users")
|
||||||
|
|
|
@ -22,11 +22,12 @@ const (
|
||||||
defaultTimeout = 80
|
defaultTimeout = 80
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// List of exposed errors.
|
||||||
var (
|
var (
|
||||||
errNotAuthorized = errors.New("miniflux: unauthorized (bad credentials)")
|
ErrNotAuthorized = errors.New("miniflux: unauthorized (bad credentials)")
|
||||||
errForbidden = errors.New("miniflux: access forbidden")
|
ErrForbidden = errors.New("miniflux: access forbidden")
|
||||||
errServerError = errors.New("miniflux: internal server error")
|
ErrServerError = errors.New("miniflux: internal server error")
|
||||||
errNotFound = errors.New("miniflux: resource not found")
|
ErrNotFound = errors.New("miniflux: resource not found")
|
||||||
)
|
)
|
||||||
|
|
||||||
type errorResponse struct {
|
type errorResponse struct {
|
||||||
|
@ -93,13 +94,13 @@ func (r *request) execute(method, path string, data interface{}) (io.ReadCloser,
|
||||||
|
|
||||||
switch response.StatusCode {
|
switch response.StatusCode {
|
||||||
case http.StatusUnauthorized:
|
case http.StatusUnauthorized:
|
||||||
return nil, errNotAuthorized
|
return nil, ErrNotAuthorized
|
||||||
case http.StatusForbidden:
|
case http.StatusForbidden:
|
||||||
return nil, errForbidden
|
return nil, ErrForbidden
|
||||||
case http.StatusInternalServerError:
|
case http.StatusInternalServerError:
|
||||||
return nil, errServerError
|
return nil, ErrServerError
|
||||||
case http.StatusNotFound:
|
case http.StatusNotFound:
|
||||||
return nil, errNotFound
|
return nil, ErrNotFound
|
||||||
case http.StatusBadRequest:
|
case http.StatusBadRequest:
|
||||||
defer response.Body.Close()
|
defer response.Body.Close()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue