package auth import ( "testing" ) func TestHashToken(t *testing.T) { token := "test-jwt-token-string-12345" hash := HashToken(token) // Verify hash is not empty if hash == "" { t.Error("HashToken returned empty string") } // Verify hash length (SHA-256 produces 64 hex characters) if len(hash) != 64 { t.Errorf("HashToken returned hash of length %d, expected 64", len(hash)) } // Verify hash is deterministic (same token produces same hash) hash2 := HashToken(token) if hash != hash2 { t.Error("HashToken returned different hashes for same token") } } func TestHashToken_DifferentTokens(t *testing.T) { token1 := "token1" token2 := "token2" hash1 := HashToken(token1) hash2 := HashToken(token2) // Different tokens should produce different hashes if hash1 == hash2 { t.Error("Different tokens produced same hash") } } func TestVerifyTokenHash(t *testing.T) { token := "test-jwt-token-string-12345" storedHash := HashToken(token) // Test correct token if !VerifyTokenHash(token, storedHash) { t.Error("VerifyTokenHash returned false for correct token") } // Test wrong token if VerifyTokenHash("wrong-token", storedHash) { t.Error("VerifyTokenHash returned true for wrong token") } // Test empty token if VerifyTokenHash("", storedHash) { t.Error("VerifyTokenHash returned true for empty token") } } func TestHashToken_EmptyToken(t *testing.T) { hash := HashToken("") if hash == "" { t.Error("HashToken should return hash even for empty token") } if len(hash) != 64 { t.Errorf("HashToken returned hash of length %d for empty token, expected 64", len(hash)) } }