Add request specs
This commit is contained in:
parent
449f6edb45
commit
57e9c5a3a2
3 changed files with 56 additions and 0 deletions
|
@ -4,5 +4,6 @@ FactoryBot.define do
|
|||
factory :user do
|
||||
email { Faker::Internet.email }
|
||||
password { Faker::Internet.password }
|
||||
password_confirmation { password }
|
||||
end
|
||||
end
|
||||
|
|
30
spec/requests/users/create_spec.rb
Normal file
30
spec/requests/users/create_spec.rb
Normal file
|
@ -0,0 +1,30 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'POST /users' do
|
||||
let(:user_attributes) { attributes_for :user }
|
||||
|
||||
def make_request
|
||||
post '/users', params: { user: user_attributes }
|
||||
end
|
||||
|
||||
specify do
|
||||
expect { make_request }.to change(User, :count).from(0).to(1)
|
||||
end
|
||||
|
||||
context 'after request' do
|
||||
before { make_request }
|
||||
|
||||
specify do
|
||||
expect(request).to redirect_to root_url
|
||||
end
|
||||
|
||||
specify do
|
||||
expect(User.last).to have_attributes user_attributes.merge(
|
||||
password: nil,
|
||||
password_confirmation: nil,
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
25
spec/requests/users/sign_in/create_spec.rb
Normal file
25
spec/requests/users/sign_in/create_spec.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'POST /users/sign_in' do
|
||||
let!(:user) { create :user }
|
||||
|
||||
let(:user_attributes) { { email: user.email, password: user.password } }
|
||||
|
||||
def make_request
|
||||
post '/users/sign_in', params: { user: user_attributes }
|
||||
end
|
||||
|
||||
specify do
|
||||
expect { make_request }.not_to change(User, :count).from(1)
|
||||
end
|
||||
|
||||
context 'after request' do
|
||||
before { make_request }
|
||||
|
||||
specify do
|
||||
expect(response).to redirect_to root_url
|
||||
end
|
||||
end
|
||||
end
|
Reference in a new issue