Commit e9b7ee0
Changed files (3)
app
controllers
models
spec
models
app/controllers/registrations_controller.rb
@@ -17,6 +17,6 @@ class RegistrationsController < ApplicationController
private
def secure_params
- params.require(:user).permit(:username, :email, :password)
+ params.require(:user).permit(:username, :email, :password, :terms_and_conditions)
end
end
app/models/user.rb
@@ -1,7 +1,8 @@
class User < ActiveRecord::Base
- attr_accessor :terms_and_conditions, :password
+ attr_accessor :password
USERNAME_REGEX=/\A[-a-z0-9_.]*\z/i
validates :username, presence: true, format: { with: USERNAME_REGEX }, uniqueness: true
validates :email, presence: true, email: true, uniqueness: true
+ validates_acceptance_of :terms_and_conditions, accept: true
end
spec/models/user_spec.rb
@@ -14,7 +14,6 @@ describe User do
describe "validations" do
context "username" do
-
it 'is invalid when the username is missing' do
user = User.new(username: nil)
expect(user).to_not be_valid
@@ -55,6 +54,19 @@ describe User do
expect(second_user.errors[:email]).to_not be_empty
end
end
+
+ describe "terms_and_conditions" do
+ it 'is invalid if terms and conditions is unchecked' do
+ user = User.new(terms_and_conditions: false)
+ expect(user).to_not be_valid
+ expect(user.errors[:terms_and_conditions]).to_not be_empty
+ end
+ end
+
+ it 'is valid when it is' do
+ user = User.new(username: 'coolio', email: 'notblank@example.com', password: 'legit', terms_and_conditions: true)
+ expect(user).to be_valid
+ end
end
describe "USERNAME_REGEX" do