assert_not_predicate user, :valid?, "should not allow nil value"
end
+ def test_display_name_width
+ user = build(:user)
+ user.display_name = "123"
+ assert_predicate user, :valid?, "should allow 3 column name name"
+ user.display_name = "12"
+ assert_not_predicate user, :valid?, "should not allow 2 column name"
+ user.display_name = "1\u{200B}2"
+ assert_not_predicate user, :valid?, "should not allow 2 column name"
+ user.display_name = "\u{200B}\u{200B}\u{200B}"
+ assert_not_predicate user, :valid?, "should not allow 0 column name"
+ end
+
def test_display_name_valid
# Due to sanitisation in the view some of these that you might not
# expect are allowed
user = build(:user)
user.display_name = "user_#{existing_user.id}"
- assert_not user.valid?, "user_<id> name is valid for existing user id when it shouldn't be"
+ assert_not_predicate user, :valid?, "user_<id> name is valid for existing user id when it shouldn't be"
user.display_name = "user_#{existing_user.id + 1}"
- assert_not user.valid?, "user_<id> name is valid for new user id when it shouldn't be"
+ assert_not_predicate user, :valid?, "user_<id> name is valid for new user id when it shouldn't be"
end
def test_display_name_user_id_rename
user = create(:user)
user.display_name = "user_#{existing_user.id}"
- assert_not user.valid?, "user_<id> name is valid for existing user id when it shouldn't be"
+ assert_not_predicate user, :valid?, "user_<id> name is valid for existing user id when it shouldn't be"
user.display_name = "user_#{user.id}"
assert_predicate user, :valid?, "user_<id> name is invalid for own id, when it should be"