implement reset nkode
This commit is contained in:
43
main_test.go
43
main_test.go
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"go-nkode/core"
|
||||
"io"
|
||||
@@ -23,14 +24,15 @@ func TestApi(t *testing.T) {
|
||||
testApiPost(t, base+core.CreateNewCustomer, newCustomerBody, &customerResp)
|
||||
|
||||
username := "test_username@example.com"
|
||||
signupInterfaceBody := core.GenerateSignupInterfacePost{
|
||||
signupInterfaceBody := core.GenerateSignupRestInterfacePost{
|
||||
CustomerId: customerResp.CustomerId,
|
||||
AttrsPerKey: kp.AttrsPerKey,
|
||||
NumbOfKeys: kp.NumbOfKeys,
|
||||
UserEmail: username,
|
||||
Reset: false,
|
||||
}
|
||||
var signupInterfaceResp core.GenerateSignupInterfaceResp
|
||||
testApiPost(t, base+core.GenerateSignupInterface, signupInterfaceBody, &signupInterfaceResp)
|
||||
var signupInterfaceResp core.GenerateSignupResetInterfaceResp
|
||||
testApiPost(t, base+core.GenerateSignupResetInterface, signupInterfaceBody, &signupInterfaceResp)
|
||||
assert.Len(t, signupInterfaceResp.SvgInterface, kp.TotalAttrs())
|
||||
passcodeLen := 4
|
||||
setInterface := signupInterfaceResp.UserIdxInterface
|
||||
@@ -71,7 +73,7 @@ func TestApi(t *testing.T) {
|
||||
UserEmail: username,
|
||||
KeySelection: loginKeySelection,
|
||||
}
|
||||
var jwtTokens core.JwtTokens
|
||||
var jwtTokens core.AuthenticationTokens
|
||||
testApiPost(t, base+core.Login, loginBody, &jwtTokens)
|
||||
refreshClaims, err := core.ParseRefreshToken(jwtTokens.RefreshToken)
|
||||
assert.Equal(t, refreshClaims.Subject, username)
|
||||
@@ -91,17 +93,12 @@ func TestApi(t *testing.T) {
|
||||
testApiPost(t, base+core.Login, loginBody, &jwtTokens)
|
||||
|
||||
var randomSvgInterfaceResp core.RandomSvgInterfaceResp
|
||||
testApiGet(t, base+core.RandomSvgInterface, &randomSvgInterfaceResp)
|
||||
testApiGet(t, base+core.RandomSvgInterface, &randomSvgInterfaceResp, "")
|
||||
assert.Equal(t, core.KeypadMax.TotalAttrs(), len(randomSvgInterfaceResp.Svgs))
|
||||
|
||||
refreshBody := core.RefreshTokenPost{
|
||||
UserEmail: username,
|
||||
CustomerId: customerResp.CustomerId,
|
||||
RefreshToken: jwtTokens.RefreshToken,
|
||||
}
|
||||
|
||||
var refreshTokenResp core.RefreshTokenResp
|
||||
testApiPost(t, base+core.RefreshToken, refreshBody, &refreshTokenResp)
|
||||
|
||||
testApiGet(t, base+core.RefreshToken, &refreshTokenResp, jwtTokens.RefreshToken)
|
||||
accessClaims, err = core.ParseAccessToken(refreshTokenResp.AccessToken)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, accessClaims.Subject, username)
|
||||
@@ -131,8 +128,26 @@ func testApiPost(t *testing.T, endpointStr string, postBody any, respBody any) {
|
||||
}
|
||||
}
|
||||
|
||||
func testApiGet(t *testing.T, endpointStr string, respBody any) {
|
||||
resp, err := http.Get(endpointStr)
|
||||
func testApiGet(t *testing.T, endpointStr string, respBody any, bearerToken string) {
|
||||
req, err := http.NewRequest("GET", endpointStr, nil)
|
||||
if err != nil {
|
||||
fmt.Println("Error creating request:", err)
|
||||
return
|
||||
}
|
||||
|
||||
// Add the Bearer token to the Authorization header
|
||||
if bearerToken != "" {
|
||||
req.Header.Set("Authorization", "Bearer "+bearerToken)
|
||||
}
|
||||
// Make the HTTP request
|
||||
client := &http.Client{}
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
fmt.Println("Error making request:", err)
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, resp.StatusCode, http.StatusOK)
|
||||
if respBody != nil {
|
||||
|
||||
Reference in New Issue
Block a user