Newer
Older
package api
import (
"net/http"
"testing"
)
func TestSignIn(t *testing.T) {
tapi := newTestAPI(t)
defer tapi.close()
var member struct {
Member
Password string `json:"password"`
}
member.Num = 10
member.Name = "foo"
member.Password = "password"
resp := tapi.do("POST", "/member", member, nil)
if resp.StatusCode != http.StatusCreated {
t.Fatal("Can't create member:", resp.Status)
}
tapi.token = ""
resp = tapi.do("GET", "/member", nil, nil)
if resp.StatusCode != http.StatusUnauthorized {
t.Error("Got members without auth")
}
var respMember struct {
Token string `json:"token"`
Member Member `json:"member"`
}
jsonAuth := creds{
Name: member.Name,
Password: member.Password,
}
resp = tapi.do("POST", "/signin", jsonAuth, &respMember)
if resp.StatusCode != http.StatusOK {
t.Fatal("Can't sign in:", resp.Status)
}
if respMember.Member.Name != member.Name {
t.Fatal("Unexpected member:", respMember)
}
tapi.token = respMember.Token
resp = tapi.do("GET", "/member", nil, nil)
if resp.StatusCode != http.StatusOK {
t.Fatal("Can't get members:", resp.Status)
}
}