@@ -5,6 +5,7 @@ defmodule CodeCorps.GitHub.EventTest do
5
5
6
6
alias CodeCorps . {
7
7
GithubEvent ,
8
+ GitHub.APIError ,
8
9
GitHub.Event
9
10
}
10
11
@@ -23,11 +24,35 @@ defmodule CodeCorps.GitHub.EventTest do
23
24
assert updated_event . status == "processed"
24
25
end
25
26
26
- test "marks event errored, with failure_reason, if resulting tuple starts with :error " do
27
+ test "marks event errored for changeset " do
27
28
event = insert ( :github_event , status: "processing" )
28
- { :ok , % GithubEvent { } = updated_event } = Event . stop_processing ( { :error , :bar , % { } } , event )
29
+ data = % { foo: "bar" }
30
+ changeset = % Ecto.Changeset { data: data }
31
+
32
+ { :ok , % GithubEvent { } = updated_event } =
33
+ { :error , :bar , changeset }
34
+ |> Event . stop_processing ( event )
35
+
36
+ assert updated_event . data == data |> Kernel . inspect ( pretty: true )
37
+ assert updated_event . error == changeset |> Kernel . inspect ( pretty: true )
38
+ assert updated_event . failure_reason == "bar"
29
39
assert updated_event . status == "errored"
40
+ end
41
+
42
+ test "marks event errored for API error" do
43
+ event = insert ( :github_event , status: "processing" )
44
+ error_body = % { "message" => "bar" }
45
+ error_code = 401
46
+ error = APIError . new ( { error_code , error_body } )
47
+
48
+ { :ok , % GithubEvent { } = updated_event } =
49
+ { :error , :bar , error }
50
+ |> Event . stop_processing ( event )
51
+
52
+ assert updated_event . data == nil
53
+ assert updated_event . error == error |> Kernel . inspect ( pretty: true )
30
54
assert updated_event . failure_reason == "bar"
55
+ assert updated_event . status == "errored"
31
56
end
32
57
end
33
58
end
0 commit comments