signoz/pkg/query-service/tests/auth_test.go
Vishal Sharma 5d080f5564
fix: 🐛 convert TTL APIs to async #902 (#1173)
* fix: 🐛 convert TTL APIs to async

* chore: add archive support

* chore: update TTL async APIs according to new design

* chore: 🔥 clean removeTTL API

* fix: metrics s3 config

* test:  update tests for async TTL api

* chore: refractoring

Co-authored-by: Pranay Prateek <pranay@signoz.io>
2022-05-25 16:55:30 +05:30

126 lines
2.7 KiB
Go

package tests
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"testing"
"github.com/pkg/errors"
"github.com/stretchr/testify/require"
"go.signoz.io/query-service/auth"
"go.signoz.io/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 := ioutil.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 + fmt.Sprintf("/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 = ioutil.ReadAll(resp.Body)
if err != nil {
return "", err
}
return string(b), nil
}
func login(email, password, refreshToken string) (*model.LoginResponse, error) {
q := endpoint + fmt.Sprintf("/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 = ioutil.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)
}