Sha256: 8d9248e74ed6413dec197e410e509e31771b86ae24a9db9ed5b5991b5025ee48

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require "hanami/config/actions"

RSpec.describe Hanami::Config::Actions, "#sessions" do
  let(:config) { described_class.new }
  subject(:sessions) { config.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
      config.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

1 entries across 1 versions & 1 rubygems

Version Path
hanami-2.0.0.beta4 spec/unit/hanami/config/actions/sessions_spec.rb