@@ -15,6 +15,72 @@ defmodule CodeCorps.AccountsTest do
1515
1616 alias Ecto.Changeset
1717
18+ describe "create/1" do
19+ @ valid_user_params % {
20+ "email" => "test@user.com" ,
21+ "password" => "somepassword" ,
22+ "username" => "testuser"
23+ }
24+
25+ test "creates user" do
26+ { :ok , % User { } = user } =
27+ @ valid_user_params
28+ |> Accounts . create ( )
29+
30+ assert Repo . get ( User , user . id )
31+ end
32+
33+ test "returns changeset if validation errors" do
34+ { :error , % Changeset { } = changeset } =
35+ @ valid_user_params
36+ |> Map . delete ( "email" )
37+ |> Accounts . create ( )
38+
39+ refute changeset . valid?
40+ end
41+
42+ test "claims invite if id providedf" do
43+ invite = insert ( :user_invite , invitee: nil , project: nil )
44+
45+ { :ok , % User { } = user } =
46+ @ valid_user_params
47+ |> Map . put ( "invite_id" , invite . id )
48+ |> Accounts . create ( )
49+
50+ assert Repo . get ( User , user . id )
51+ end
52+
53+ test "associates invite with user" do
54+ invite = insert ( :user_invite , invitee: nil , project: nil )
55+
56+ { :ok , % User { } = user } =
57+ @ valid_user_params
58+ |> Map . put ( "invite_id" , invite . id )
59+ |> Accounts . create ( )
60+
61+ assert Repo . one ( UserInvite ) . invitee_id == user . id
62+ end
63+
64+ test "creates project membership if project provided with invite" do
65+ project = insert ( :project )
66+ invite = insert ( :user_invite , invitee: nil , project: project , role: "admin" )
67+
68+ { :ok , % User { } = user } =
69+ @ valid_user_params
70+ |> Map . put ( "invite_id" , invite . id )
71+ |> Accounts . create ( )
72+
73+ assert Repo . get_by ( ProjectUser , user_id: user . id , project_id: project . id , role: "admin" )
74+ end
75+
76+ test "returns :invite_not_found if bad invite id provided" do
77+ assert { :error , :invite_not_found } =
78+ @ valid_user_params
79+ |> Map . put ( "invite_id" , - 1 )
80+ |> Accounts . create ( )
81+ end
82+ end
83+
1884 describe "create_from_github/1" do
1985 test "creates proper user from provided payload" do
2086 { :ok , % User { } = user } =
@@ -268,53 +334,4 @@ defmodule CodeCorps.AccountsTest do
268334 assert changeset . errors [ :email ]
269335 end
270336 end
271-
272- describe "claim_invite/1" do
273- @ valid_user_params % {
274- "email" => "test@user.com" ,
275- "password" => "somepassword" ,
276- "username" => "testuser"
277- }
278-
279- test "creates user" do
280- invite = insert ( :user_invite , invitee: nil , project: nil )
281-
282- { :ok , % User { } = user } =
283- @ valid_user_params
284- |> Map . put ( "invite_id" , invite . id )
285- |> Accounts . claim_invite ( )
286-
287- assert Repo . get ( User , user . id )
288- end
289-
290- test "associates invite with user" do
291- invite = insert ( :user_invite , invitee: nil , project: nil )
292-
293- { :ok , % User { } = user } =
294- @ valid_user_params
295- |> Map . put ( "invite_id" , invite . id )
296- |> Accounts . claim_invite ( )
297-
298- assert Repo . one ( UserInvite ) . invitee_id == user . id
299- end
300-
301- test "creates project membership if project provided" do
302- project = insert ( :project )
303- invite = insert ( :user_invite , invitee: nil , project: project , role: "admin" )
304-
305- { :ok , % User { } = user } =
306- @ valid_user_params
307- |> Map . put ( "invite_id" , invite . id )
308- |> Accounts . claim_invite ( )
309-
310- assert Repo . get_by ( ProjectUser , user_id: user . id , project_id: project . id , role: "admin" )
311- end
312-
313- test "returns :invite_not_found if bad id provided" do
314- assert { :error , :invite_not_found } =
315- @ valid_user_params
316- |> Map . put ( "invite_id" , - 1 )
317- |> Accounts . claim_invite ( )
318- end
319- end
320337end
0 commit comments