diff --git a/spec/controllers/api/user_token_controller_spec.rb b/spec/controllers/api/user_token_controller_spec.rb new file mode 100644 index 0000000..cb01e35 --- /dev/null +++ b/spec/controllers/api/user_token_controller_spec.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Api::UserTokenController, type: :request do + let(:current_user) { create(:user) } + + describe '#create' do + it 'returns error if credentials are not corrent and does not set cookie' do + + post create_endpoint, params: wrong_auth_params + + expect(response).to be_successful + expect(response.body).to match record_not_found + expect(cookie_data).to eq nil + end + + it 'sends token and cookie if credentials are correct' do + post create_endpoint, params: correct_auth_params + + expect(response).to be_successful + expect(response.body).not_to match record_not_found + expect(response.body).to match token_response + expect(cookie_data).not_to eq nil + end + end + + private + + def wrong_auth_params + { + auth: { + email: 'wrong_email@api-test.com', + password: 'password' + } + } + end + + def correct_auth_params + { + auth: { + email: current_user.email, + password: 'password' + } + } + end + + def create_endpoint + '/api/v1/user_token' + end + + def record_not_found + /Record not found/ + end + + def token_response + /jwt/ + end + + def cookie_data + cookies[:_easy_release_session] + end +end