@@ -5,6 +5,7 @@ defmodule CodeCorps.GitHub.EventTest do
55
66 alias CodeCorps . {
77 GithubEvent ,
8+ GitHub.APIError ,
89 GitHub.Event
910 }
1011
@@ -23,11 +24,35 @@ defmodule CodeCorps.GitHub.EventTest do
2324 assert updated_event . status == "processed"
2425 end
2526
26- test "marks event errored, with failure_reason, if resulting tuple starts with :error " do
27+ test "marks event errored for changeset " do
2728 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"
2939 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 )
3054 assert updated_event . failure_reason == "bar"
55+ assert updated_event . status == "errored"
3156 end
3257 end
3358end
0 commit comments