@@ -0,0 +1,45 @@
|
||||
package acceptance
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type loginResponse struct {
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
func loginAdmin(t *testing.T, ctx context.Context, client *Client, c Config) string {
|
||||
t.Helper()
|
||||
return login(t, ctx, client, "/v1/auth/admin/login", c.AdminEmail, c.AdminPassword)
|
||||
}
|
||||
|
||||
func loginUser(t *testing.T, ctx context.Context, client *Client, c Config) string {
|
||||
t.Helper()
|
||||
return login(t, ctx, client, "/v1/auth/login", c.UserEmail, c.UserPassword)
|
||||
}
|
||||
|
||||
func login(t *testing.T, ctx context.Context, client *Client, path string, email string, password string) string {
|
||||
t.Helper()
|
||||
requireSecret(t, "login email", email)
|
||||
requireSecret(t, "login password", password)
|
||||
|
||||
envelope, raw, status, err := client.PostJSON(ctx, path, map[string]string{
|
||||
"email": email,
|
||||
"password": password,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("login request failed: %v", err)
|
||||
}
|
||||
assertOK(t, envelope, raw, status)
|
||||
|
||||
var data loginResponse
|
||||
if err := json.Unmarshal(envelope.Data, &data); err != nil {
|
||||
t.Fatalf("decode login response: %v", err)
|
||||
}
|
||||
if data.Token == "" {
|
||||
t.Fatal("login response token is empty")
|
||||
}
|
||||
return data.Token
|
||||
}
|
||||
Reference in New Issue
Block a user