QA@IT
«回答へ戻る

回答を投稿

結局成功したり失敗したりするのは

RSpec.configure do |config|
  config.after :each do
    Draper::ViewContext.current_controller = nil
    Draper::ViewContext.current = nil
  end
end

でたぶん解決しました。

current_user の方はどうするのが正しいのかわからなかったので、とりあえず以下のように無理矢理設定しておくことにしました。

module LoginAsDraperViewContextHelper
  def login_as(user)
    Draper::ViewContext.current_controller.instance_eval do
      @current_user = user
      Draper::ViewContext.current.assign(view_assigns)
    end
    class << Draper::ViewContext.current
      attr_reader :current_user
    end
  end
end

RSpec.configure do |config|
  config.include LoginAsDraperViewContextHelper, type: :decorator
end
結局成功したり失敗したりするのは

```
RSpec.configure do |config|
  config.after :each do
    Draper::ViewContext.current_controller = nil
    Draper::ViewContext.current = nil
  end
end
```

でたぶん解決しました。

current_user の方はどうするのが正しいのかわからなかったので、とりあえず以下のように無理矢理設定しておくことにしました。

```
module LoginAsDraperViewContextHelper
  def login_as(user)
    Draper::ViewContext.current_controller.instance_eval do
      @current_user = user
      Draper::ViewContext.current.assign(view_assigns)
    end
    class << Draper::ViewContext.current
      attr_reader :current_user
    end
  end
end

RSpec.configure do |config|
  config.include LoginAsDraperViewContextHelper, type: :decorator
end
```