127 lines
2.7 KiB
Go
127 lines
2.7 KiB
Go
package tests
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"io"
|
|
"testing"
|
|
|
|
"github.com/pkg/errors"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"go.signoz.io/signoz/pkg/query-service/auth"
|
|
"go.signoz.io/signoz/pkg/query-service/model"
|
|
)
|
|
|
|
func invite(t *testing.T, email string) *model.InviteResponse {
|
|
q := endpoint + fmt.Sprintf("/api/v1/invite?email=%s", email)
|
|
resp, err := client.Get(q)
|
|
require.NoError(t, err)
|
|
|
|
defer resp.Body.Close()
|
|
b, err := io.ReadAll(resp.Body)
|
|
require.NoError(t, err)
|
|
|
|
var inviteResp model.InviteResponse
|
|
err = json.Unmarshal(b, &inviteResp)
|
|
require.NoError(t, err)
|
|
|
|
return &inviteResp
|
|
}
|
|
|
|
func register(email, password, token string) (string, error) {
|
|
q := endpoint + "/api/v1/register"
|
|
|
|
req := auth.RegisterRequest{
|
|
Email: email,
|
|
Password: password,
|
|
InviteToken: token,
|
|
}
|
|
|
|
b, err := json.Marshal(req)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
resp, err := client.Post(q, "application/json", bytes.NewBuffer(b))
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
defer resp.Body.Close()
|
|
b, err = io.ReadAll(resp.Body)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return string(b), nil
|
|
}
|
|
|
|
func login(email, password, refreshToken string) (*model.LoginResponse, error) {
|
|
q := endpoint + "/api/v1/login"
|
|
|
|
req := model.LoginRequest{
|
|
Email: email,
|
|
Password: password,
|
|
RefreshToken: refreshToken,
|
|
}
|
|
|
|
b, err := json.Marshal(req)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to marshal")
|
|
}
|
|
resp, err := client.Post(q, "application/json", bytes.NewBuffer(b))
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to post")
|
|
}
|
|
|
|
defer resp.Body.Close()
|
|
b, err = io.ReadAll(resp.Body)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to read body")
|
|
}
|
|
|
|
loginResp := &model.LoginResponse{}
|
|
err = json.Unmarshal(b, loginResp)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "failed to unmarshal")
|
|
}
|
|
|
|
return loginResp, nil
|
|
}
|
|
|
|
func TestAuthInviteAPI(t *testing.T) {
|
|
t.Skip()
|
|
email := "abc@signoz.io"
|
|
resp := invite(t, email)
|
|
require.Equal(t, email, resp.Email)
|
|
require.NotNil(t, resp.InviteToken)
|
|
}
|
|
|
|
func TestAuthRegisterAPI(t *testing.T) {
|
|
email := "alice@signoz.io"
|
|
resp, err := register(email, "Password@123", "")
|
|
require.NoError(t, err)
|
|
require.Contains(t, resp, "user registered successfully")
|
|
|
|
}
|
|
|
|
func TestAuthLoginAPI(t *testing.T) {
|
|
t.Skip()
|
|
email := "abc-login@signoz.io"
|
|
password := "Password@123"
|
|
inv := invite(t, email)
|
|
|
|
resp, err := register(email, password, inv.InviteToken)
|
|
require.NoError(t, err)
|
|
require.Contains(t, resp, "user registered successfully")
|
|
|
|
loginResp, err := login(email, password, "")
|
|
require.NoError(t, err)
|
|
|
|
loginResp2, err := login("", "", loginResp.RefreshJwt)
|
|
require.NoError(t, err)
|
|
|
|
require.NotNil(t, loginResp2.AccessJwt)
|
|
}
|