Packages
exq
0.16.2
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.2
Exq is a job processing library compatible with Resque / Sidekiq for the Elixir language.
Current section
Files
Jump to
Current section
Files
test/fake_mode_test.exs
defmodule FakeModeTest do
use ExUnit.Case, async: true
alias Exq.Support.Time
defmodule BrokenWorker do
def perform(_) do
raise RuntimeError, "Unexpected"
end
end
setup do
Exq.Mock.set_mode(:fake)
end
describe "fake mode" do
test "enqueue" do
scheduled_at = DateTime.utc_now()
assert [] = Exq.Mock.jobs()
assert {:ok, _} = Exq.enqueue(Exq, "low", BrokenWorker, [1])
assert {:ok, _} = Exq.enqueue_at(Exq, "low", scheduled_at, BrokenWorker, [2])
assert {:ok, _} = Exq.enqueue_in(Exq, "low", 300, BrokenWorker, [3])
assert [
%Exq.Support.Job{
args: [1],
class: FakeModeTest.BrokenWorker,
queue: "low"
},
%Exq.Support.Job{
args: [2],
class: FakeModeTest.BrokenWorker,
queue: "low",
enqueued_at: ^scheduled_at
},
%Exq.Support.Job{
args: [3],
class: FakeModeTest.BrokenWorker,
queue: "low",
enqueued_at: scheduled_in
}
] = Exq.Mock.jobs()
scheduled_seconds = Time.unix_seconds(scheduled_in)
current_seconds = Time.unix_seconds(DateTime.utc_now())
assert current_seconds + 290 < scheduled_seconds
assert current_seconds + 310 > scheduled_seconds
end
test "with predetermined job ID" do
jid = UUID.uuid4()
assert [] = Exq.Mock.jobs()
assert {:ok, jid} == Exq.enqueue(Exq, "low", BrokenWorker, [], jid: jid)
assert [
%Exq.Support.Job{
args: [],
class: FakeModeTest.BrokenWorker,
queue: "low",
jid: ^jid
}
] = Exq.Mock.jobs()
end
end
end