Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'rails_helper'
- RSpec.describe Users::RegistrationsController, type: :controller do
- describe 'sign in' do
- before do
- @user=build(:user)
- @request.env["devise.mapping"] = Devise.mappings[:user]
- end
- it 'adds 60 point with default' do
- post :create , params: {name: @user.name , sex: @user.sex , age: @user.age ,country: @user.country ,email: @user.email ,password: @user.password, password_confirmation: @user.password , confirmed_at: DateTime.now }
- expect(response).to render_template root_path
- expect(@user.points).to eq (60)
- end
- end
- end
- class Users::RegistrationsController < Devise::RegistrationsController
- def create
- super
- if resource.save
- resource.rewards.create(point: 60)
- end
- end
- end
- Rails.application.routes.draw do
- devise_for :users, controllers: {
- registrations: 'users/registrations' ,
- }
- end
- expected: 60
- got: 0
- Couldn't find User without an ID
- class User < ActiveRecord::Base
- devise :database_authenticatable, :registerable,
- :recoverable, :rememberable, :trackable, :validatable, :confirmable, :timeoutable, :omniauthable, :omniauth_providers => [:facebook]
- default_scope -> {order(created_at: :desc)}
- validates :name , presence: true , length: {maximum: 18}
- validates :sex , presence: true
- validates :age , presence: true
- validates :country , presence: true
- def points(force_reload = false)
- self.rewards(force_reload).sum(:point)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement