Skip to content

Commit 55bde3c

Browse files
authored
Merge pull request #775 from code-corps/allow-setting-user-state-to-donating-on-creation
Allow setting user state to 'signed_up_donating' on registration
2 parents 7521582 + 83ca182 commit 55bde3c

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

test/models/user_test.exs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,17 @@ defmodule CodeCorps.UserTest do
6363
refute changeset.valid?
6464
assert_error_message(changeset, :username, "has already been taken")
6565
end
66+
67+
test "allows setting state to 'signed_up_donating'" do
68+
attrs = @valid_attrs |> Map.put(:state, "signed_up_donating")
69+
changeset = User.registration_changeset(%User{}, attrs)
70+
assert changeset.valid?
71+
assert changeset |> Ecto.Changeset.get_change(:state) == "signed_up_donating"
72+
73+
attrs = @valid_attrs |> Map.put(:state, "selected_skills")
74+
changeset = User.registration_changeset(%User{}, attrs)
75+
refute changeset.valid?
76+
end
6677
end
6778

6879
describe "update_changeset" do

web/models/user.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ defmodule CodeCorps.User do
7171
def registration_changeset(struct, params) do
7272
struct
7373
|> changeset(params)
74-
|> cast(params, [:password, :username])
75-
|> validate_required(:password)
76-
|> validate_required(:username)
74+
|> cast(params, [:password, :username, :state])
75+
|> validate_required([:password, :username])
7776
|> validate_length(:password, min: 6)
7877
|> validate_length(:username, min: 1, max: 39)
78+
|> validate_inclusion(:state, ["signed_up_donating"])
7979
|> validate_slug(:username)
8080
|> unique_constraint(:username, name: :users_lower_username_index)
8181
|> unique_constraint(:email)

0 commit comments

Comments
 (0)