-
Notifications
You must be signed in to change notification settings - Fork 2
/
sent_controller_test.exs
133 lines (105 loc) · 3.98 KB
/
sent_controller_test.exs
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
defmodule AppWeb.SentControllerTest do
use AppWeb.ConnCase
alias App.Ctx
@create_attrs %{message_id: "some message_id", request_id: "some request_id", template: "some template"}
@update_attrs %{message_id: "some updated message_id", request_id: "some updated request_id", template: "some updated template"}
@invalid_attrs %{message_id: nil, request_id: nil, template: nil}
def fixture(:sent) do
{:ok, sent} = Ctx.create_sent(@create_attrs)
sent
end
describe "index" do
test "lists all sent", %{conn: conn} do
conn = get(conn, Routes.sent_path(conn, :index))
assert html_response(conn, 200) =~ "Listing Sent"
end
end
describe "new sent" do
test "renders form", %{conn: conn} do
conn = get(conn, Routes.sent_path(conn, :new))
assert html_response(conn, 200) =~ "New Sent"
end
end
describe "create sent" do
test "redirects to show when data is valid", %{conn: conn} do
conn = post(conn, Routes.sent_path(conn, :create), sent: @create_attrs)
assert %{id: id} = redirected_params(conn)
assert redirected_to(conn) == Routes.sent_path(conn, :show, id)
conn = get(conn, Routes.sent_path(conn, :show, id))
assert html_response(conn, 200) =~ "Show Sent"
end
test "renders errors when data is invalid", %{conn: conn} do
conn = post(conn, Routes.sent_path(conn, :create), sent: @invalid_attrs)
assert html_response(conn, 200) =~ "New Sent"
end
end
describe "edit sent" do
setup [:create_sent]
test "renders form for editing chosen sent", %{conn: conn, sent: sent} do
conn = get(conn, Routes.sent_path(conn, :edit, sent))
assert html_response(conn, 200) =~ "Edit Sent"
end
end
describe "update sent" do
setup [:create_sent]
test "redirects when data is valid", %{conn: conn, sent: sent} do
conn = put(conn, Routes.sent_path(conn, :update, sent), sent: @update_attrs)
assert redirected_to(conn) == Routes.sent_path(conn, :show, sent)
conn = get(conn, Routes.sent_path(conn, :show, sent))
assert html_response(conn, 200) =~ "some updated message_id"
end
test "renders errors when data is invalid", %{conn: conn, sent: sent} do
conn = put(conn, Routes.sent_path(conn, :update, sent), sent: @invalid_attrs)
assert html_response(conn, 200) =~ "Edit Sent"
end
end
describe "delete sent" do
setup [:create_sent]
test "deletes chosen sent", %{conn: conn, sent: sent} do
conn = delete(conn, Routes.sent_path(conn, :delete, sent))
assert redirected_to(conn) == Routes.sent_path(conn, :index)
assert_error_sent 404, fn ->
get(conn, Routes.sent_path(conn, :show, sent))
end
end
end
defp create_sent(_) do
sent = fixture(:sent)
{:ok, sent: sent}
end
test "test hello endpoint (always returns 200)" do
conn = build_conn()
|> AppWeb.SentController.hello(nil)
# IO.inspect(conn, label: "conn")
assert conn.status == 200
end
describe "process_jwt" do
test "reject request if no authorization header" do
conn = build_conn()
|> AppWeb.SentController.process_jwt(nil)
assert conn.status == 401
end
test "reject request if JWT invalid" do
jwt = "this.fails"
conn = build_conn()
|> put_req_header("authorization", "#{jwt}")
|> AppWeb.SentController.process_jwt(nil)
assert conn.status == 401
end
test "processes valid jwt upsert_sent data" do
json = %{
"message_id" => "1232017092006798-f0456694-ac24-487b-9467-b79b8ce798f2-000000",
"status" => "Sent",
"email" => "amaze@gmail.com",
"template" => "welcome"
}
jwt = App.Token.generate_and_sign!(json)
conn = build_conn()
|> put_req_header("authorization", "#{jwt}")
|> AppWeb.SentController.process_jwt(nil)
assert conn.status == 200
{:ok, resp} = Jason.decode(conn.resp_body)
assert Map.get(resp, "id") > 0 # id increases each time test is run
end
end
end