Packages

V8 engine for Elixir with pools.

Current section

Files

Jump to
elixir_v8 test elixir_v8_test.exs
Raw

test/elixir_v8_test.exs

defmodule ElixirV8Test do
use ExUnit.Case
doctest ElixirV8
test "Simple execution" do
{:ok, _} = ElixirV8.create_pool(:main, 10)
{:ok, result} = ElixirV8.eval({:global, :main}, "2 * 4")
assert result == 8
ElixirV8.delete_pool(:main)
end
test "Context remaining" do
{:ok, _} = ElixirV8.create_pool(:main, 10)
{:ok, _} = ElixirV8.eval({:global, :main}, "function sum(a, b) { return a + b; }")
{:ok, result} = ElixirV8.eval({:global, :main}, "sum(3, 4)")
assert result == 7
ElixirV8.delete_pool(:main)
end
test "Function calling" do
{:ok, _} = ElixirV8.create_pool(:main, 10)
{:ok, result} = ElixirV8.eval_function({:global, :main}, "return arguments[0] * arguments[1]", [20, 5])
assert result == 100
ElixirV8.delete_pool(:main)
end
test "Loading JavaScript library" do
js_library = Path.join File.cwd!, "test/resource/library.js"
{:ok, _} = ElixirV8.create_pool(:main, 10, file: js_library)
{:ok, result2} = ElixirV8.eval({:global, :main}, "multiply(3, 4)")
assert result2 == 12
ElixirV8.delete_pool(:main)
end
end