diff --git a/test/models/user_test.rb b/test/models/user_test.rb new file mode 100644 index 0000000..85bbae5 --- /dev/null +++ b/test/models/user_test.rb @@ -0,0 +1,48 @@ +require "test_helper" + +class UserTest < ActiveSupport::TestCase + setup do + @user = FactoryBot.build(:user) + end + + sub_test_case "password" do + def set_password(current_password, password, password_confirmation) + @user.current_password = current_password + @user.password = password + @user.password_confirmation = password_confirmation + end + + sub_test_case "when current password is correct" do + test "password/confirmation is 8 characters" do + set_password(@user.password, "a" * 8, "a" * 8) + assert do + @user.valid? + end + end + + test "password is 7 characters" do + set_password(@user.password, "a" * 7, "a" * 7) + assert do + !@user.valid? + end + assert_equal([:password], @user.errors.keys) + end + + test "password != password_confirmation" do + set_password(@user.password, "a" * 8, "b" * 8) + assert do + !@user.valid? + end + assert_equal([:password], @user.errors.keys) + end + end + + test "current_password is wrong" do + set_password("invalid_password", "a" * 8, "a" * 8) + assert do + !@user.valid? + end + assert_equal([:current_password], @user.errors.keys) + end + end +end