From 36ed37bcd0e0e504ce8328c7f35afbcffb156cbe Mon Sep 17 00:00:00 2001 From: Joao P Dubas Date: Sat, 26 Jun 2021 19:08:14 +0000 Subject: [PATCH] [day-05] test user changeset validation --- test/wabanex/user_test.exs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test/wabanex/user_test.exs diff --git a/test/wabanex/user_test.exs b/test/wabanex/user_test.exs new file mode 100644 index 0000000..22cedfc --- /dev/null +++ b/test/wabanex/user_test.exs @@ -0,0 +1,33 @@ +defmodule Wabanex.UserTest do + use Wabanex.DataCase, async: true + + alias Wabanex.User + + describe "changeset/1" do + test "when all param are valid returns a valid changeset" do + params = %{name: "Joe Doe", email: "joe.doe@anywhere.com", password: "aLongEnough"} + + changeset = User.changeset(params) + + assert %{ + valid?: true, + changes: %{name: "Joe Doe", email: "joe.doe@anywhere.com", password: "aLongEnough"}, + errors: [] + } = changeset + end + + test "when one of the params is invalid returns an invalid changeset" do + params = %{name: "J", email: "j", password: "j"} + + changeset = User.changeset(params) + + assert %{valid?: false} = changeset + + assert %{ + name: ["should be at least 2 character(s)"], + email: ["has invalid format"], + password: ["should be at least 6 character(s)"] + } == errors_on(changeset) + end + end +end