Packages

Ruby compatible multipass encryption and decryption

Current section

Files

Jump to
ex_multipass test coding_test.exs
Raw

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