Packages

An Elixir driver for ArangoDB, version published by mpoeter.

Current section

Files

Jump to
my_arangoex test arangoex task_test.exs
Raw

test/arangoex/task_test.exs

defmodule TaskTest do
use MyArangoex.TestCase
doctest MyArangoex
alias MyArangoex.Task
test "creates a task", ctx do
task = %Task{
name: "SampleTask",
command: "(function(params) { require('@arangodb').print(params); })(params)",
params: %{
foo: "fooey",
bar: "barey"
},
period: 2
}
assert {
:ok, %{
"code" => 200,
"error" => false,
"command" => "(function (params) { (function(params) { require('@arangodb').print(params); })(params) } )(params);",
"created" => _,
"database" => "_system",
"id" => _,
"offset" => _,
"name" => "SampleTask",
"period" => 2,
"type" => "periodic"
}
} = Task.create(ctx.endpoint, task)
end
test "lists a task or tasks", ctx do
{:ok, tasks} = Task.tasks(ctx.endpoint)
assert [
%{
"database" => "_system",
"name" => "user-defined task",
"period" => 1,
"type" => "periodic"
},
%{
"database" => "_system",
"id" => "statistics-gc",
"name" => "statistics-gc",
"period" => 450,
"type" => "periodic"
},
%{
"database" => "_system",
"id" => "statistics-collector",
"name" => "statistics-collector",
"period" => 10,
"type" => "periodic"
},
%{
"database" => "_system",
"id" => "statistics-average-collector",
"name" => "statistics-average-collector",
"period" => 900,
"type" => "periodic"
},
] = Enum.sort(tasks)
end
test "deletes a task", ctx do
assert {
:error, %{
"code" => 404,
"error" => true,
"errorNum" => 1852,
"errorMessage" => "task not found"
}
} = Task.delete(ctx.endpoint, "1234")
task = %Task{
name: "SampleTask",
command: "(function(params) { require('@arangodb').print(params); })(params)",
params: %{
foo: "fooey",
bar: "barey"
},
period: 2
}
{:ok, %{"id" => task_id}} = Task.create(ctx.endpoint, task)
assert {
:ok, %{"code" => 200, "error" => false}
} = Task.delete(ctx.endpoint, task_id)
end
test "fetch a task by id", ctx do
task = %Task{
name: "SampleTask",
command: "(function(myparams) { require('@arangodb').print(myparams); })(myparams)",
params: %{
foo: "fooey",
bar: "barey"
},
period: 2
}
{:ok, %{"id" => task_id}} = Task.create(ctx.endpoint, task)
task = Task.task(ctx.endpoint, task_id)
{:ok, result} = task
assert {
:ok, %{
"code" => 200,
"error" => false,
"command" => _,
"created" => _,
"database" => "_system",
"id" => ^task_id,
"name" => "SampleTask",
"period" => 2,
"type" => "periodic"
}
} = task
assert Regex.match?(~r/myparams/, result["command"])
end
test "create a task by id", ctx do
task = %Task{
name: "SampleTask",
command: "(function(myparams) { require('@arangodb').print(myparams); })(myparams)",
params: %{
foo: "fooey",
bar: "barey"
},
period: 2
}
assert {:ok, _} = Task.create_with_id(ctx.endpoint, "foobar", task)
task = Task.task(ctx.endpoint, "foobar")
{:ok, result} = task
assert {
:ok, %{
"code" => 200,
"error" => false,
"command" => _,
"created" => _,
"database" => "_system",
"id" => "foobar",
"name" => "SampleTask",
"period" => 2,
"type" => "periodic"
}
} = task
assert Regex.match?(~r/myparams/, result["command"])
end
end