implement reset nkode

This commit is contained in:
2024-09-27 13:51:45 -05:00
parent 1b133edd78
commit 57b5308ca9
17 changed files with 489 additions and 88 deletions

View File

@@ -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 {