Sha256: a986e4b187bfb0176dd456eb6b48240cda7f9dfccb5257a0fd3ad74b57eb0f57

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

require "hanami/configuration/actions"

RSpec.describe Hanami::Configuration::Actions, "#sessions" do
  let(:configuration) { described_class.new }
  subject(:sessions) { configuration.sessions }

  context "no session config specified" do
    it "is not enabled" do
      expect(sessions).not_to be_enabled
    end

    it "returns nil storage" do
      expect(sessions.storage).to be_nil
    end

    it "returns empty options" do
      expect(sessions.options).to eq []
    end

    it "returns no session middleware" do
      expect(sessions.middleware).to eq []
    end
  end

  context "valid session config provided" do
    before do
      configuration.sessions = :cookie, {secret: "abc"}
    end

    it "is enabled" do
      expect(sessions).to be_enabled
    end

    it "returns the given storage" do
      expect(sessions.storage).to eq :cookie
    end

    it "returns the given options" do
      expect(sessions.options).to eq [secret: "abc"]
    end

    it "returns an array of middleware classes and options" do
      expect(sessions.middleware).to eq [
        [Rack::Session::Cookie, [secret: "abc"]]
      ]
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hanami-2.0.0.beta3 spec/unit/hanami/configuration/actions/sessions_spec.rb
hanami-2.0.0.beta2 spec/unit/hanami/configuration/actions/sessions_spec.rb
hanami-2.0.0.beta1.1 spec/unit/hanami/configuration/actions/sessions_spec.rb
hanami-2.0.0.beta1 spec/unit/hanami/configuration/actions/sessions_spec.rb