Sha256: 561eb63ad74443cbc4510565cd6a2156d1fa5926f24c4e1f7135f743f5fee11e

Contents?: true

Size: 904 Bytes

Versions: 3

Compression:

Stored size: 904 Bytes

Contents

# encoding: utf-8

module Selector

  describe Selector::Function do

    let(:function) { described_class.new -> v { v[/foo/] } }

    describe ".new" do

      subject { function }

      it { is_expected.to be_kind_of Condition }
      it { is_expected.to be_frozen }

      it "requires exactly 1 argument" do
        expect { described_class.new }.to raise_error ArgumentError
        expect { described_class.new [:foo], [:bar] }
          .to raise_error ArgumentError
      end

    end # describe .new

    describe "#[]" do

      subject { function[value] }

      context "existing value" do

        let(:value) { :foo }
        it { is_expected.to eql(true) }

      end # context

      context "absent value" do

        let(:value) { :baz }
        it { is_expected.to eql(false) }

      end # context

    end # describe #[]

  end # describe Selector::Function

end # module Selector

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
selector-0.0.3 spec/unit/selector/function_spec.rb
selector-0.0.2 spec/unit/selector/function_spec.rb
selector-0.0.1 spec/unit/selector/function_spec.rb