Make user bio optional
This commit is contained in:
		
							parent
							
								
									eec6a87dbb
								
							
						
					
					
						commit
						ec07e087bc
					
				
					 2 changed files with 6 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -93,7 +93,7 @@ def update_changeset(struct, params \\ %{}) do
 | 
			
		|||
    |> cast(params, [:bio, :name])
 | 
			
		||||
    |> unique_constraint(:nickname)
 | 
			
		||||
    |> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
 | 
			
		||||
    |> validate_length(:bio, min: 1, max: 1000)
 | 
			
		||||
    |> validate_length(:bio, max: 1000)
 | 
			
		||||
    |> validate_length(:name, min: 1, max: 100)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -119,13 +119,13 @@ def reset_password(user, data) do
 | 
			
		|||
  def register_changeset(struct, params \\ %{}) do
 | 
			
		||||
    changeset = struct
 | 
			
		||||
    |> cast(params, [:bio, :email, :name, :nickname, :password, :password_confirmation])
 | 
			
		||||
    |> validate_required([:bio, :email, :name, :nickname, :password, :password_confirmation])
 | 
			
		||||
    |> validate_required([:email, :name, :nickname, :password, :password_confirmation])
 | 
			
		||||
    |> validate_confirmation(:password)
 | 
			
		||||
    |> unique_constraint(:email)
 | 
			
		||||
    |> unique_constraint(:nickname)
 | 
			
		||||
    |> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
 | 
			
		||||
    |> validate_format(:email, @email_regex)
 | 
			
		||||
    |> validate_length(:bio, min: 1, max: 1000)
 | 
			
		||||
    |> validate_length(:bio, max: 1000)
 | 
			
		||||
    |> validate_length(:name, min: 1, max: 100)
 | 
			
		||||
 | 
			
		||||
    if changeset.valid? do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -101,13 +101,14 @@ test "test if a user is following another user" do
 | 
			
		|||
      email: "email@example.com"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    test "it requires a bio, email, name, nickname and password" do
 | 
			
		||||
    test "it requires an email, name, nickname and password, bio is optional" do
 | 
			
		||||
      @full_user_data
 | 
			
		||||
      |> Map.keys
 | 
			
		||||
      |> Enum.each(fn (key) ->
 | 
			
		||||
        params = Map.delete(@full_user_data, key)
 | 
			
		||||
        changeset = User.register_changeset(%User{}, params)
 | 
			
		||||
        assert changeset.valid? == false
 | 
			
		||||
 | 
			
		||||
        assert (if key == :bio, do: changeset.valid?, else: not changeset.valid?)
 | 
			
		||||
      end)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue