-
Notifications
You must be signed in to change notification settings - Fork 82
Expand file tree
/
Copy pathevent_test.exs
More file actions
58 lines (48 loc) · 1.85 KB
/
event_test.exs
File metadata and controls
58 lines (48 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
defmodule CodeCorps.GitHub.EventTest do
@moduledoc false
use CodeCorps.DbAccessCase
alias CodeCorps.{
GithubEvent,
GitHub.APIError,
GitHub.Event
}
describe "start_processing/1" do
test "sets event status to processing" do
event = insert(:github_event, status: "unprocessed")
{:ok, %GithubEvent{} = updated_event} = Event.start_processing(event)
assert updated_event.status == "processing"
end
end
describe "stop_processing/2" do
test "sets event as processed if resulting tuple starts with :ok" do
event = insert(:github_event, status: "processing")
{:ok, %GithubEvent{} = updated_event} = Event.stop_processing({:ok, "foo"}, event)
assert updated_event.status == "processed"
end
test "marks event errored for changeset" do
event = insert(:github_event, status: "processing")
data = %{foo: "bar"}
changeset = %Ecto.Changeset{data: data}
{:ok, %GithubEvent{} = updated_event} =
{:error, :bar, changeset}
|> Event.stop_processing(event)
assert updated_event.data == data |> Kernel.inspect(pretty: true)
assert updated_event.error == changeset |> Kernel.inspect(pretty: true)
assert updated_event.failure_reason == "bar"
assert updated_event.status == "errored"
end
test "marks event errored for API error" do
event = insert(:github_event, status: "processing")
error_body = %{"message" => "bar"}
error_code = 401
error = APIError.new({error_code, error_body})
{:ok, %GithubEvent{} = updated_event} =
{:error, :bar, error}
|> Event.stop_processing(event)
assert updated_event.data == nil
assert updated_event.error == error |> Kernel.inspect(pretty: true)
assert updated_event.failure_reason == "bar"
assert updated_event.status == "errored"
end
end
end