Я пытаюсь проверить мою схему graphql без необходимости аутентификации.
Я добавил skip_before_action :verify_authenticity_token
к GraphqlController
, и при использовании почтальона (копируется запросом curl из graphiql), и я вижу успешный запрос в режиме разработки.
В почтальоне у меня есть запрос в теле {"query":"{\n user(id: 1) {\n id\n created_at\n updated_at\n jwt\n}\n}\n","variables":null,"operationName":null}
и приложение Content-Type / json в заголовке, и это прекрасно работает.
Сейчас в тестовом режиме я нажимаю на инициализатор авторизации для Omniauth:
Rails.application.config.middleware.use OmniAuth::Builder do
provider(
:auth0,
Auth0::Config["app_client_id"],
Auth0::Config["app_client_secret"],
Auth0::Config["domain"],
callback_path: "/auth/auth0/callback"
)
end
Хотя я не хочу, поскольку я не хочу, чтобы в этом почтовом запросе требовались какие-либо заголовки.
Вот мой запрос rspec:
require 'graphlient'
RSpec.shared_context "GraphQL Client", shared_context: :metadata do
let(:client) do
Graphlient::Client.new('https://api.example.org/graphql') do |client|
client.http do |h|
h.connection do |c|
c.use Faraday::Adapter::Rack, app
end
end
end
end
end
и вот фактический тест
it 'retrieves schema' do
expect(client.schema).to be_a GraphQL::Schema
end
с ошибкой:
Failure/Error:
expect { client.schema.status }
.to raise_error(Graphlient::Errors::ServerError)
expected Graphlient::Errors::ServerError, got #<ArgumentError: Received wrong number of arguments. [nil, nil, nil, {:callback_path=>"/auth/auth0/callback"}]> with backtrace:
# /usr/local/bundle/gems/omniauth-auth0-1.4.2/lib/omniauth/strategies/auth0.rb:41:in `initialize'