diff --git a/app/models/user.rb b/app/models/user.rb index f433a2d..ff07836 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,6 +1,6 @@ class User < ActiveRecord::Base - USERNAME_FORMAT = /\A[a-z0-9][a-z0-9-]+[a-z0-9]\z/ + USERNAME_FORMAT = /\A[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\z/ has_many :api_tokens, :dependent => :destroy has_many :asciicasts, :dependent => :destroy @@ -11,7 +11,7 @@ class User < ActiveRecord::Base has_many :comments, :dependent => :destroy validates :username, presence: true - validates :username, uniqueness: { scope: :dummy }, + validates :username, uniqueness: { scope: :dummy, case_sensitive: false }, format: { with: USERNAME_FORMAT }, length: { minimum: 3, maximum: 16 }, unless: :dummy diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 2fc091d..826f702 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -15,7 +15,7 @@ describe User do end describe "#valid?" do - let!(:existing_user) { create(:user) } + let!(:existing_user) { create(:user, username: 'the-user-name') } let(:user) { described_class.new } it { should validate_presence_of(:username) } @@ -53,7 +53,7 @@ describe User do it { should allow_value('sick-ill').for(:username) } it { should allow_value('abc').for(:username) } it { should allow_value('s' * 16).for(:username) } - it { should_not allow_value('Sickill').for(:username) } + it { should allow_value('Sickill').for(:username) } it { should_not allow_value('sick.ill').for(:username) } it { should_not allow_value('-sickill').for(:username) } it { should_not allow_value('sickill-').for(:username) } @@ -61,7 +61,7 @@ describe User do it { should_not allow_value('s' * 17).for(:username) } it "checks username uniqueness" do - user.username = existing_user.username + user.username = 'The-User-Name' user.valid? expect(user.errors[:username]).to_not be_empty end