Skip to content

Commit ca51744

Browse files
fix(aes-encryption): crypto.GenerateNonce write tests
Signed-off-by: ivan katliarchuk <[email protected]>
1 parent f8777a0 commit ca51744

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

endpoint/crypto_test.go

+34
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ limitations under the License.
1717
package endpoint
1818

1919
import (
20+
"encoding/base64"
21+
"io"
2022
"testing"
2123

24+
"crypto/rand"
25+
2226
"github.com/stretchr/testify/require"
2327
)
2428

@@ -56,3 +60,33 @@ func TestEncrypt(t *testing.T) {
5660
t.Error("Decryption of text didn't result in expected plaintext result.")
5761
}
5862
}
63+
64+
func TestGenerateNonceSuccess(t *testing.T) {
65+
nonce, err := GenerateNonce()
66+
require.NoError(t, err)
67+
require.NotEmpty(t, nonce)
68+
69+
// Test nonce length
70+
decodedNonce, err := base64.StdEncoding.DecodeString(string(nonce))
71+
require.NoError(t, err)
72+
require.Equal(t, standardGcmNonceSize, len(decodedNonce))
73+
}
74+
75+
func TestGenerateNonceError(t *testing.T) {
76+
// Save the original rand.Reader
77+
originalRandReader := rand.Reader
78+
defer func() { rand.Reader = originalRandReader }()
79+
80+
// Replace rand.Reader with a faulty reader
81+
rand.Reader = &faultyReader{}
82+
83+
nonce, err := GenerateNonce()
84+
require.Error(t, err)
85+
require.Nil(t, nonce)
86+
}
87+
88+
type faultyReader struct{}
89+
90+
func (f *faultyReader) Read(p []byte) (n int, err error) {
91+
return 0, io.ErrUnexpectedEOF
92+
}

0 commit comments

Comments
 (0)