From b7d93c22494cd71ba97876753f2961bf45b60347 Mon Sep 17 00:00:00 2001 From: alfred-mk Date: Thu, 3 Oct 2024 17:47:48 +0300 Subject: [PATCH] use a UUID for the sessionId --- go.mod | 1 + go.sum | 2 ++ test_engine/menu_traversal_test.go | 20 ++++++++++---------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/go.mod b/go.mod index c4c5167..1f67f34 100644 --- a/go.mod +++ b/go.mod @@ -15,6 +15,7 @@ require ( github.com/barbashov/iso639-3 v0.0.0-20211020172741-1f4ffb2d8d1c // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/fxamacker/cbor/v2 v2.4.0 // indirect + github.com/gofrs/uuid v4.4.0+incompatible github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect github.com/mattn/kinako v0.0.0-20170717041458-332c0a7e205a // indirect diff --git a/go.sum b/go.sum index ed5636f..0eccb60 100644 --- a/go.sum +++ b/go.sum @@ -12,6 +12,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fxamacker/cbor/v2 v2.4.0 h1:ri0ArlOR+5XunOP8CRUowT0pSJOwhW098ZCUyskZD88= github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4 h1:U4kkNYryi/qfbBF8gh7Vsbuz+cVmhf5kt6pE9bYYyLo= github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4/go.mod h1:zpZDgZFzeq9s0MIeB1P50NIEWDFFHSFBohI/NbaTD/Y= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= diff --git a/test_engine/menu_traversal_test.go b/test_engine/menu_traversal_test.go index 657b1db..0112b00 100644 --- a/test_engine/menu_traversal_test.go +++ b/test_engine/menu_traversal_test.go @@ -3,14 +3,13 @@ package main import ( "bytes" "context" - "crypto/rand" - "encoding/hex" "regexp" "testing" "time" "git.grassecon.net/urdt/ussd/driver" enginetest "git.grassecon.net/urdt/ussd/engine" + "github.com/gofrs/uuid" ) var ( @@ -18,14 +17,13 @@ var ( sessionID string ) -// GenerateRandomSessionID generates a random session ID of 10 characters -func GenerateRandomSessionID() string { - bytes := make([]byte, 5) - _, err := rand.Read(bytes) +// GenerateRandomSessionID generates a random UUID for the sessionID +func GenerateUUID() string { + u, err := uuid.NewV4() if err != nil { - return "default_session" + return "default_uuid" } - return hex.EncodeToString(bytes) + return u.String() } // Extract the public key from the engine response @@ -40,7 +38,7 @@ func extractPublicKey(response []byte) string { } func TestMain(m *testing.M) { - sessionID = GenerateRandomSessionID() + sessionID = GenerateUUID() m.Run() } @@ -77,7 +75,9 @@ func TestAccountCreationSuccessful(t *testing.T) { } func TestAccountRegistrationRejectTerms(t *testing.T) { - en, fn := enginetest.TestEngine(sessionID + "_b") + // Generate a new UUID for this edge case test + edgeCaseSessionID := GenerateUUID() + en, fn := enginetest.TestEngine(edgeCaseSessionID) defer fn() ctx := context.Background() sessions := testData