Sha256: 6cbb1b50f0da3f6eae4a07aabc4cba679ba9624508485dd4bd0bd2e8c04759d2

Contents?: true

Size: 1.26 KB

Versions: 12

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

module NulogySSO
  RSpec.describe CookieTokenStore do
    let(:request) { double(host: "some_app.nulogy.net", ssl?: false) }
    let(:response) { double(set_cookie: spy, delete_cookie: spy) }

    subject(:token_store) { CookieTokenStore.new(request, response) }

    before do
      freeze_time
    end

    it "extracts the top level domain from a domain name" do
      allow(request).to receive(:host).and_return("some.app.nulogy.net")
      token_store.store!("anything")
      expect(response).to have_received(:set_cookie).with(anything, hash_including(domain: ".nulogy.net"))
    end

    it "stores the cookie value with the correct settings" do
      token_store.store!("cookie value")

      expect(response).to have_received(:set_cookie).with(
        "mock_cookie_prefix_access_token",
        value: "cookie value",
        path: "/",
        domain: ".nulogy.net",
        expires: 36_000.seconds.from_now,
        httponly: true,
        secure: false
      )
    end

    it "deletes the cookie matching the path, domain and key" do
      token_store.forget!

      expect(response).to have_received(:delete_cookie).with(
        "mock_cookie_prefix_access_token",
        path: "/",
        domain: ".nulogy.net",
      )
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
nulogy_sso-2.6.0 spec/unit/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.5.1 spec/unit/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.5.0 spec/unit/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.4.0 spec/unit/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.3.1 spec/unit/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.3.0 spec/unit/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.2.0 spec/unit/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.1.3 spec/unit/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.1.2 spec/integration/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.1.1 spec/integration/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.1.0 spec/integration/services/nulogy_sso/cookie_token_store_spec.rb
nulogy_sso-2.0.0 spec/integration/services/nulogy_sso/cookie_token_store_spec.rb