Ensure remember_user_token is present for Fastly with specs (#5065)

This commit is contained in:
Molly Struve 2019-12-10 14:01:26 -06:00 committed by Mac Siri
parent 3f8a6caa72
commit 98b832155f
2 changed files with 25 additions and 4 deletions

View file

@ -11,7 +11,7 @@ class AsyncInfoController < ApplicationController
}
return
end
if cookies[:remember_user_token].blank?
if remember_user_token.blank?
current_user.remember_me = true
current_user.remember_me!
remember_me(current_user)
@ -71,7 +71,11 @@ class AsyncInfoController < ApplicationController
#{current_user&.articles_count}__
#{current_user&.pro?}__
#{current_user&.blocking_others_count}__
#{cookies[:remember_user_token]}"
#{remember_user_token}"
end
def remember_user_token
cookies[:remember_user_token]
end
private

View file

@ -1,6 +1,12 @@
require "rails_helper"
RSpec.describe "AsyncInfo", type: :request do
let(:controller_instance) { AsyncInfoController.new }
before do
allow(AsyncInfoController).to receive(:new).and_return(controller_instance)
end
describe "GET /async_info/base_data" do
context "when not logged-in" do
before { get "/async_info/base_data" }
@ -14,13 +20,24 @@ RSpec.describe "AsyncInfo", type: :request do
end
end
context "when logged int" do
context "when logged in" do
it "returns token and user" do
allow(cookies).to receive(:[]).with(:remember_user_token).and_return(nil)
allow(controller_instance).to receive(:remember_user_token).and_return(nil)
sign_in create(:user)
get "/async_info/base_data"
expect(response.body).to include("token", "user")
end
end
end
describe "#remember_user_token" do
# We require the remember_user_token key bc we also use it for caching in Fastly
# If this key changes, Fastly needs to be updated
it "requires remember_user_token cookie to be present" do
get "/async_info/base_data"
token = "a_token"
controller.send("cookies")[:remember_user_token] = "a_token"
expect(controller.remember_user_token).to eq(token)
end
end
end