discourse/spec/integration/discourse_cookie_store_spec.rb
David Taylor 31306d5f71
DEV: Only write session cookie when contents is changed (#33828)
By default, Rack/Rails will include the session cookie in every
response, even if its content hasn't changed. This makes race conditions
very likely when multiple requests are made in parallel.
2025-07-25 11:07:07 +01:00

16 lines
556 B
Ruby
Vendored

# frozen_string_literal: true
describe ActionDispatch::Session::DiscourseCookieStore, type: :request do
it "only writes session cookie when changed" do
get "/session/csrf.json"
expect(response.status).to eq(200)
expect(response.cookies["_forum_session"]).to be_present
csrf_token = session[:_csrf_token]
expect(csrf_token).to be_present
get "/session/csrf.json"
expect(response.status).to eq(200)
expect(response.cookies["_forum_session"]).not_to be_present
expect(session[:_csrf_token]).to eq(csrf_token)
end
end