25 lines
643 B
Ruby
25 lines
643 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "test_helper"
|
|
|
|
class PasswordTest < Minitest::Test
|
|
def test_hash_and_verify_round_trip
|
|
encoded = Volumen::Password.hash("s3cret")
|
|
assert Volumen::Password.verify("s3cret", encoded)
|
|
end
|
|
|
|
def test_verify_rejects_wrong_password
|
|
encoded = Volumen::Password.hash("s3cret")
|
|
refute Volumen::Password.verify("nope", encoded)
|
|
end
|
|
|
|
def test_verify_rejects_malformed_input
|
|
refute Volumen::Password.verify("x", "not-a-hash")
|
|
refute Volumen::Password.verify("x", "")
|
|
end
|
|
|
|
def test_encoded_format
|
|
assert Volumen::Password.hash("pw").start_with?("scrypt$16384$8$1$")
|
|
end
|
|
end
|