#
class Account < ApplicationRecord
- USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.]+[a-z0-9_]+)?/i
+ USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i
MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[a-z0-9\.\-]+[a-z0-9]+)?)/i
include AccountAvatar
expect(account).not_to model_have_error_on_field(:username)
end
- it 'is invalid if the username doesn\'t only contains letters, numbers and underscores' do
+ it 'is valid even if the username contains hyphens' do
account = Fabricate.build(:account, domain: 'domain', username: 'the-doctor')
account.valid?
+ expect(account).to_not model_have_error_on_field(:username)
+ end
+
+ it 'is invalid if the username doesn\'t only contains letters, numbers, underscores and hyphens' do
+ account = Fabricate.build(:account, domain: 'domain', username: 'the doctor')
+ account.valid?
expect(account).to model_have_error_on_field(:username)
end