all repos

onasty @ 040e38372994521cfeb76c57c76998be53bf6a17

a one-time notes service

onasty/internal/hasher/sha256_test.go(view raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package hasher

import (
	"testing"

	"github.com/stretchr/testify/require"
)

func TestSHA256Hasher_Hash(t *testing.T) {
	hasher := NewSHA256Hasher("salt")

	hashed, err := hasher.Hash("qwerty123")
	require.NoError(t, err)
	require.NotEmpty(t, hashed)
}

func TestSHA256Hasher_Compared(t *testing.T) {
	hasher := NewSHA256Hasher("salt")
	input := "qwerty123"

	t.Run("valid", func(t *testing.T) {
		hashed, err := hasher.Hash(input)
		require.NoError(t, err)
		require.NotEmpty(t, hashed)

		err = hasher.Compare(hashed, input)
		require.NoError(t, err)
	})

	t.Run("hashes mismatch", func(t *testing.T) {
		hashed, err := hasher.Hash(input + "4")
		require.NoError(t, err)
		require.NotEmpty(t, hashed)

		err = hasher.Compare(hashed, input)
		require.ErrorIs(t, err, ErrMismatchedHashes)
	})
}