Sha256: e8c432b0fd7c60269a631ba0908246825344898127d831857f13f69677f42c75

Contents?: true

Size: 1.1 KB

Versions: 3

Compression:

Stored size: 1.1 KB

Contents

require 'spec_helper'

module Figleaf
  RSpec.describe Config do
    let(:code) do
      proc do
        setting_set_on_root "bar"

        default do
          foo "bar"
          bar "baz"
        end

        production do
          env "foo"
        end

        failer do
          raise "Hello"
        end

        test do
          foo "testbar"
        end
      end
    end

    subject(:config) { described_class.new }

    describe "#call" do
      subject(:called) { config.call(&code) }
      it "stores first level keywords as keys" do
        expect(called.keys).to contain_exactly(*%w(
          default
          failer
          production
          setting_set_on_root
          test
        ))
      end

      it "expands default" do
        expect(called["default"]).to eq(
          "foo" => "bar",
          "bar" => "baz"
        )
      end

      it "expands test" do
        expect(called["test"]).to eq(
          "foo" => "testbar"
        )
      end

      it "only raises when evaluating 'failer'" do
        expect { called["failer"] }.to raise_error(RuntimeError)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
figleaf-0.2.9 spec/figleaf/config_spec.rb
figleaf-0.2.7 spec/figleaf/config_spec.rb
figleaf-0.2.6 spec/figleaf/config_spec.rb