@@ -15,6 +15,72 @@ defmodule CodeCorps.AccountsTest do
15
15
16
16
alias Ecto.Changeset
17
17
18
+ describe "create/1" do
19
+ @ valid_user_params % {
20
+
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
+
18
84
describe "create_from_github/1" do
19
85
test "creates proper user from provided payload" do
20
86
{ :ok , % User { } = user } =
@@ -268,53 +334,4 @@ defmodule CodeCorps.AccountsTest do
268
334
assert changeset . errors [ :email ]
269
335
end
270
336
end
271
-
272
- describe "claim_invite/1" do
273
- @ valid_user_params % {
274
-
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
320
337
end
0 commit comments