41 lines
No EOL
1.2 KiB
Ruby
41 lines
No EOL
1.2 KiB
Ruby
require 'rails_helper'
|
|
|
|
RSpec.describe 'Users API', type: :request do
|
|
let(:user) { build(:user) }
|
|
let(:headers) { valid_headers.except('Authorization') }
|
|
let(:valid_attributes) do
|
|
attributes_for(:user, password_confirmation: user.password)
|
|
end
|
|
|
|
# User signup test suite
|
|
describe 'POST /signup' do
|
|
context 'when valid request' do
|
|
before { post '/signup', params: valid_attributes.to_json, headers: headers }
|
|
|
|
it 'creates a new user' do
|
|
expect(response).to have_http_status(201)
|
|
end
|
|
|
|
it 'returns success message' do
|
|
expect(json['message']).to match(/Account created successfully/)
|
|
end
|
|
|
|
it 'returns an authentication token' do
|
|
expect(json['auth_token']).not_to be_nil
|
|
end
|
|
end
|
|
|
|
context 'when invalid request' do
|
|
before { post '/signup', params: {}, headers: headers }
|
|
|
|
it 'does not create a new user' do
|
|
expect(response).to have_http_status(422)
|
|
end
|
|
|
|
it 'returns failure message' do
|
|
expect(json['message'])
|
|
.to match(/Validation failed: Password can't be blank, Name can't be blank, Email can't be blank, Password digest can't be blank/)
|
|
end
|
|
end
|
|
end
|
|
end |