mirror of
https://github.com/fspc/BikeShed-1.git
synced 2025-04-04 05:33:22 -04:00
Merge pull request #121 from ilya-konanykhin/issue-120
Issue #120: user email is nullable now. Closes #121.
This commit is contained in:
commit
21fba7251f
2
Gemfile
2
Gemfile
@ -40,7 +40,7 @@ end
|
|||||||
group :test do
|
group :test do
|
||||||
gem 'shoulda-matchers', '~> 1.0.0'
|
gem 'shoulda-matchers', '~> 1.0.0'
|
||||||
gem 'capybara', '~> 2.2.1'
|
gem 'capybara', '~> 2.2.1'
|
||||||
gem 'poltergeist', '~> 1.5.0'
|
gem 'poltergeist', '~> 1.10.0'
|
||||||
gem 'database_cleaner', '~> 1.2.0'
|
gem 'database_cleaner', '~> 1.2.0'
|
||||||
gem 'launchy', '~> 2.4.2'
|
gem 'launchy', '~> 2.4.2'
|
||||||
gem 'spork', '~> 0.9.2'
|
gem 'spork', '~> 0.9.2'
|
||||||
|
@ -159,10 +159,9 @@ GEM
|
|||||||
mime-types
|
mime-types
|
||||||
mimemagic (= 0.3.0)
|
mimemagic (= 0.3.0)
|
||||||
pg (0.17.1)
|
pg (0.17.1)
|
||||||
poltergeist (1.5.1)
|
poltergeist (1.10.0)
|
||||||
capybara (~> 2.1)
|
capybara (~> 2.1)
|
||||||
cliver (~> 0.3.1)
|
cliver (~> 0.3.1)
|
||||||
multi_json (~> 1.0)
|
|
||||||
websocket-driver (>= 0.2.0)
|
websocket-driver (>= 0.2.0)
|
||||||
polyglot (0.3.5)
|
polyglot (0.3.5)
|
||||||
pry (0.9.12.6)
|
pry (0.9.12.6)
|
||||||
@ -238,7 +237,7 @@ GEM
|
|||||||
json (>= 1.8.0)
|
json (>= 1.8.0)
|
||||||
warden (1.1.1)
|
warden (1.1.1)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
websocket-driver (0.6.3)
|
websocket-driver (0.6.5)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.2)
|
websocket-extensions (0.1.2)
|
||||||
will_paginate (3.0.7)
|
will_paginate (3.0.7)
|
||||||
@ -273,7 +272,7 @@ DEPENDENCIES
|
|||||||
netzke-core (~> 0.8.0)
|
netzke-core (~> 0.8.0)
|
||||||
paperclip (~> 4.3)
|
paperclip (~> 4.3)
|
||||||
pg (~> 0.17.1)
|
pg (~> 0.17.1)
|
||||||
poltergeist (~> 1.5.0)
|
poltergeist (~> 1.10.0)
|
||||||
pry (~> 0.9.8)
|
pry (~> 0.9.8)
|
||||||
rails (= 3.2.13)
|
rails (= 3.2.13)
|
||||||
rake (< 11.0)
|
rake (< 11.0)
|
||||||
|
@ -54,6 +54,11 @@ class User < ActiveRecord::Base
|
|||||||
roles.include?(role)
|
roles.include?(role)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# try keeping the email field in DB clear and consistent, without empty strings (NULLs instead)
|
||||||
|
def email=(other)
|
||||||
|
super(other.blank? ? nil : other)
|
||||||
|
end
|
||||||
|
|
||||||
### TODO methods below probably belong somewhere else
|
### TODO methods below probably belong somewhere else
|
||||||
|
|
||||||
def completed_build_bikes
|
def completed_build_bikes
|
||||||
|
15
db/migrate/20170131164224_user_email_can_be_null.rb
Normal file
15
db/migrate/20170131164224_user_email_can_be_null.rb
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
class UserEmailCanBeNull < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
change_table :users do |t|
|
||||||
|
t.change :email, :string, default: nil, null: true
|
||||||
|
end
|
||||||
|
|
||||||
|
User.where(email: '').update_all(email: nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
change_table :users do |t|
|
||||||
|
t.change :email, :string, default: '', null: false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -11,7 +11,7 @@
|
|||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20170118112258) do
|
ActiveRecord::Schema.define(:version => 20170131164224) do
|
||||||
|
|
||||||
create_table "bike_actions", :force => true do |t|
|
create_table "bike_actions", :force => true do |t|
|
||||||
t.string "action", :limit => 128, :null => false
|
t.string "action", :limit => 128, :null => false
|
||||||
@ -183,7 +183,7 @@ ActiveRecord::Schema.define(:version => 20170118112258) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
create_table "users", :force => true do |t|
|
create_table "users", :force => true do |t|
|
||||||
t.string "email", :default => "", :null => false
|
t.string "email"
|
||||||
t.string "encrypted_password", :default => "", :null => false
|
t.string "encrypted_password", :default => "", :null => false
|
||||||
t.string "reset_password_token"
|
t.string "reset_password_token"
|
||||||
t.datetime "reset_password_sent_at"
|
t.datetime "reset_password_sent_at"
|
||||||
|
@ -13,7 +13,9 @@ describe "New User Registrations" do
|
|||||||
before do
|
before do
|
||||||
visit new_user_registration_path
|
visit new_user_registration_path
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should have the additional user fields on the registration page' do
|
it 'should have the additional user fields on the registration page' do
|
||||||
|
page.should have_field 'user_username'
|
||||||
page.should have_field 'user_first_name'
|
page.should have_field 'user_first_name'
|
||||||
page.should have_field 'user_last_name'
|
page.should have_field 'user_last_name'
|
||||||
page.should have_field 'user_email'
|
page.should have_field 'user_email'
|
||||||
@ -29,6 +31,13 @@ describe "New User Registrations" do
|
|||||||
fill_in 'user_password_confirmation', :with => 'password'
|
fill_in 'user_password_confirmation', :with => 'password'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should require username' do
|
||||||
|
fill_in 'user_first_name', :with => 'Frank'
|
||||||
|
fill_in 'user_last_name', :with => 'Footer'
|
||||||
|
click_button 'Sign up'
|
||||||
|
page.should have_content "Username can't be blank"
|
||||||
|
end
|
||||||
|
|
||||||
it 'should require first name' do
|
it 'should require first name' do
|
||||||
fill_in 'user_last_name', :with => 'Footer'
|
fill_in 'user_last_name', :with => 'Footer'
|
||||||
click_button 'Sign up'
|
click_button 'Sign up'
|
||||||
@ -41,5 +50,21 @@ describe "New User Registrations" do
|
|||||||
page.should have_content "Last name can't be blank"
|
page.should have_content "Last name can't be blank"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should allow registering many users with empty emails' do
|
||||||
|
expect do
|
||||||
|
FactoryGirl.create :user, email: ''
|
||||||
|
FactoryGirl.create :user, email: nil
|
||||||
|
|
||||||
|
fill_in 'user_username', :with => 'test3'
|
||||||
|
fill_in 'user_first_name', :with => 'Frank3'
|
||||||
|
fill_in 'user_last_name', :with => 'Footer3'
|
||||||
|
fill_in 'user_password', :with => 'password3'
|
||||||
|
fill_in 'user_password_confirmation', :with => 'password3'
|
||||||
|
click_button 'Sign up'
|
||||||
|
end.to change { User.count }.by(3)
|
||||||
|
|
||||||
|
expect(User.where(email: nil).count).to eq(3)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user