Current section
Files
Jump to
Current section
Files
test/coding_test.exs
defmodule ExMultipass.CodingTest do
@moduledoc false
use ExUnit.Case
use ExUnitProperties
import ExMultipass.TestData
alias ExMultipass.Coding
property "encode/1 returns mutated string with values replaced" do
check all string <- pseudo_encrypted_string() do
url_safe = Coding.encode(string)
refute String.contains?(url_safe, "+")
refute String.contains?(url_safe, "\n")
refute String.contains?(url_safe, "/")
end
end
property "decode/1 returns encoded string with mutations removed" do
check all string <- pseudo_encrypted_string() do
url_safe = Coding.encode(string)
assert {:ok, ^string} = Coding.decode(url_safe)
end
end
property "decode/1 trims trailing equals" do
check all string <- pseudo_encrypted_string(),
equals <- random_equals() do
url_safe = Coding.encode(string)
assert {:ok, ^string} = Coding.decode(url_safe <> equals)
end
end
end