当前位置: 首页 > 知识库问答 >
问题:

无法在测试模式下绕过Omniauth初始值设定项

钦耀
2023-03-14

我试图在不需要任何身份验证的情况下测试我的graphql模式

我在GraphqlController中添加了skip\u before\u action:verify\u authenticity\u token,并且在使用postman(通过graphiql的curl请求复制)时,我在开发模式下看到了一个成功的查询。

在postman中,我在body{“query”中有一个查询:“{\n user(id:1){\n id\n created_at\n updated_at\n jwt\n}\n}\n}\n”,“variables”:null,“operationName”:null},以及标题中的内容类型application/json,这很好用。

现在在测试模式下,我点击Omniauth的auth初始值设定项:

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'

共有1个答案

张敏达
2023-03-14

我想我明白了!我忘了在config/auth0中添加测试键。yml

这是一个隐藏的文件。

 类似资料:
  • 我通过解决一些黑客等级问题来学习java。下面的代码是关于学习静态初始值设定项块的。例外情况是thown和Capture,但程序仍在运行,我不确定原因。 输入:-1,2 预期输出:java.lang.例外:宽度和高度必须为正 实际输出:宽度和高度必须为正-2

  • 我对Swift类有一个问题。我有UITableViewController类和UITableViewCell类的swift文件。我的问题是UITableViewCell类和网点。这个类有一个错误Class“HomeCell”没有初始化程序,我不明白这个问题。 感谢您的回复。

  • 我试图在调试模式下启动我的android应用程序,但每次我检查它说这是错误的。更进一步,在buildtypes中定义的buildconfigField甚至不会显示在BuildConfig中。 这是我的gradle文件: 因此,在Android Studio中,我为我的应用程序选择了build Variant“debug”,但当我在应用程序中点击一个断点并检查的值时,无法解析字段,并且无法解析

  • 同步模式的读写测试,使用Simple Producer & Simple Consumer 备注: 1台客户机,8台Talos机器,8台Hdfs,8台HBase,Talos与Hdfs/HBase混布,机型均为2U; 读写同步,每个partition对应一个线程; ThroughPut指的是client出口/入口带宽; QPS是集群整体处理能力,非单台serverQPS 场景一:只写,batch=1

  • 我有一个Quarkus项目,我将大部分业务逻辑放在服务中,也就是使用@ApplicationScoped注释的可注入bean中,所有CRUD操作都在其中进行。在JAX-RS资源文件本身中,大部分逻辑只是验证,通常使用整个验证bean。这意味着我们需要在测试资源时模拟注入的服务,以防止单元测试成为本质上的集成测试。我们这样做有这样一个结构(示例项目); 文件模拟欢迎服务。java又是这样的: 我们的

  • 我有一个EJB无状态会话Bean。我有以下要求: 这个无状态EJB应该在启动时初始化 初始化代码应该对数据库进行事务性访问 问题是: @Startup仅适用于@Singleton EJB @PostConstruct注释(至少在WebSphere上)在这一点上没有事务性上下文,所以初始化代码在这里爆炸! 可能的解决方案? 使用JavaEE定时器,但它似乎是为周期性执行而设计的。我只想在零点执行一次