Skip to content
Snippets Groups Projects
auth_test.go 1.29 KiB
Newer Older
  • Learn to ignore specific revisions
  • package api
    
    import (
    	"net/http"
    	"testing"
    )
    
    func TestSignIn(t *testing.T) {
    	tapi := newTestAPI(t)
    	defer tapi.close()
    
    meskio's avatar
    meskio committed
    	tapi.addTestMember()
    
    
    	tapi.token = ""
    
    meskio's avatar
    meskio committed
    	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{
    
    meskio's avatar
    meskio committed
    		Name:     testMember.Name,
    		Password: testMember.Password,
    
    	}
    	resp = tapi.do("POST", "/signin", jsonAuth, &respMember)
    	if resp.StatusCode != http.StatusOK {
    		t.Fatal("Can't sign in:", resp.Status)
    	}
    
    meskio's avatar
    meskio committed
    	if respMember.Member.Name != testMember.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)
    	}
    }
    
    meskio's avatar
    meskio committed
    
    func TestGetToken(t *testing.T) {
    	tapi := newTestAPI(t)
    	defer tapi.close()
    	tapi.addTestMember()
    
    	var body struct {
    		Token string `json:"token"`
    	}
    	resp := tapi.do("GET", "/token", nil, &body)
    	if resp.StatusCode != http.StatusOK {
    		t.Fatal("Can't get token:", resp.Status)
    	}
    
    	tapi.token = body.Token
    	resp = tapi.do("GET", "/member", nil, nil)
    	if resp.StatusCode != http.StatusOK {
    		t.Fatal("Can't get members:", resp.Status)
    	}
    }