如何使用Pact合同验证在Rails上模拟用户身份验证?

时间:2017-04-14 18:28:56

标签: pact pact-ruby

在Pact验证阶段,我需要模拟用户身份验证。最好的方法是什么? 我正在使用Rails 4和Devise。

我发现了一个看起来非常糟糕的解决方案,但它看起来很丑陋,我希望还有另一种方法可以做到。 我正在替换Pact套件内的warden,并根据需要为Pact.service_provider "Some Service Provider" do app { ProxyApp.new(Rails.application) } ... class ProxyApp ... def call(env) # Mock user authentication env['warden'] ||= begin manager = Warden::Manager.new(nil) do |config| config.merge! Devise.warden_config end Warden::Proxy.new(env, manager) end user_id = EnvMock.get_user_id # user ID is being set inside the provider state env['warden'].set_user(Account.find(user_id), scope: :account) if user_id ... end end 手动设置用户。用户ID正在提供者状态内设置。它看起来像这样:

{{1}}

我真的希望有一些完全不同的视角,可以更美妙的方式完成这项任务。

0 个答案:

没有答案