Sha256: 6f2abb86f257948eaa64d5edcda8a4d825468f28ca907795d8ede3ec1525ab3d

Contents?: true

Size: 1.28 KB

Versions: 24

Compression:

Stored size: 1.28 KB

Contents

require "spec_helper"

describe Lita::Config do
  let(:value) { double("arbitrary config key's value") }

  it "allows hash-style access with symbols or strings" do
    subject[:foo] = value
    expect(subject[:foo]).to eql(value)
    expect(subject["foo"]).to eql(value)
  end

  it "allows struct-style access" do
    subject.foo = value
    expect(subject.foo).to eql(value)
  end

  describe ".default_config" do
    it "has predefined values for certain keys" do
      default_config = described_class.default_config
      expect(default_config.robot.name).to eq("Lita")
      expect(default_config.robot.adapter).to eq(:shell)
    end

    it "loads configuration from registered handlers" do
      handler = Class.new(Lita::Handler) do
        def self.default_config(handler_config)
          handler_config.bar = :baz
        end

        def self.name
          "Lita::Handlers::Foo"
        end
      end
      allow(Lita).to receive(:handlers).and_return([handler])
      default_config = described_class.default_config
      expect(default_config.handlers.foo.bar).to eq(:baz)
    end
  end

  describe "#finalize" do
    it "freezes the configuration" do
      subject.finalize
      expect { subject.robot = "Assignment is impossible!" }.to raise_error(RuntimeError, /frozen/)
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
lita-4.8.0 spec/lita/config_spec.rb
lita-4.8.0.beta1 spec/lita/config_spec.rb
lita-4.7.1 spec/lita/config_spec.rb
lita-4.7.0 spec/lita/config_spec.rb
lita-4.6.1 spec/lita/config_spec.rb
lita-4.6.0 spec/lita/config_spec.rb
lita-4.5.0 spec/lita/config_spec.rb
lita-4.4.3 spec/lita/config_spec.rb
lita-4.4.2 spec/lita/config_spec.rb
lita-4.4.1 spec/lita/config_spec.rb
lita-4.4.0 spec/lita/config_spec.rb
lita-4.3.2 spec/lita/config_spec.rb
lita-4.3.1 spec/lita/config_spec.rb
lita-4.3.0 spec/lita/config_spec.rb
lita-4.2.1 spec/lita/config_spec.rb
lita-4.2.0 spec/lita/config_spec.rb
lita-4.1.0 spec/lita/config_spec.rb
lita-4.0.4 spec/lita/config_spec.rb
lita-4.0.3 spec/lita/config_spec.rb
lita-4.0.2 spec/lita/config_spec.rb