Rails 6.0.0
Ruby 2.6.3
gem 'rspec-rails', '~> 3.8.2'
gem 'devise_token_auth', '~> 1.1.3 '(настройка по умолчанию)
Кажется, все работает нормально, за исключением того, что мои ответы на запросы rspec не содержат access-token
.
При проверке я получаю
[1] pry> response.headers
=> {"X-Frame-Options"=>"SAMEORIGIN",
"X-XSS-Protection"=>"1; mode=block",
"X-Content-Type-Options"=>"nosniff",
"X-Download-Options"=>"noopen",
"X-Permitted-Cross-Domain-Policies"=>"none",
"Referrer-Policy"=>"strict-origin-when-cross-origin",
"Content-Type"=>"application/json; charset=utf-8",
"access-token"=>" ",
"token-type"=>"Bearer",
"client"=>"Vy7BgunZKjUcPq_Qe5IXRQ",
"expiry"=>" ",
"uid"=>"example1@example.com",
"ETag"=>"W/\"1ecd5da9ea592fde4b83f7ae6b6906ff\"",
"Cache-Control"=>"max-age=0, private, must-revalidate",
"X-Request-Id"=>"6cbc675a-f50c-4bf7-be0f-07ebf120285b",
"X-Runtime"=>"0.042266",
"Vary"=>"Origin",
"Content-Length"=>"28"}
Обратите внимание, заголовок access-token
содержит только пробел (также срок действия). Это не относится к среде разработки, там все работает так, как и ожидалось. Итак, я чувствую, что что-то упустил в моей конфигурации RSpec или rails_helper.
Побочным эффектом этого является то, что мои документы API просто пропускают ключ auth-token
(и срок действия) при генерации.
Есть идеи?
Пример спецификации
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'Api::V1::Clients', type: :request do
let(:user) { FactoryBot.create(:user) }
let(:client) { FactoryBot.create(:client) }
let(:headers) do
{
'Content-Type': 'application/json',
'Accept': 'application/json'
}
end
describe 'GET /api/v1/clients' do
before { client }
it 'returns a 200 status code', :dox do
get api_v1_clients_path, headers: headers.merge!(user.create_new_auth_token)
expect(response).to have_http_status(200)
end
end
end