Sha256: b9a1734c5c5713f3035fd17d52b4f3d72f7203dd0e52fcea65e31210edde9df3
Contents?: true
Size: 1.94 KB
Versions: 3
Compression:
Stored size: 1.94 KB
Contents
# encoding: utf-8 require "shared/generator" module Selector describe Selector::Or do let(:foo) { generate(/foo/) } let(:bar) { generate(/bar/) } let(:baz) { generate(/baz/) } let(:composition) { described_class.new(foo, bar) } describe ".new" do subject { composition } it { is_expected.to be_kind_of Condition } it { is_expected.to be_frozen } it "returns NOTHING when possible" do subject = described_class.new NOTHING expect(subject).to eql NOTHING end it "returns ANYTHING if exists" do subject = described_class.new foo, bar, ANYTHING expect(subject).to eql ANYTHING end it "returns ANYTHING when possible" do subject = described_class.new foo, !foo expect(subject).to eql ANYTHING end it "returns the only attribute" do subject = described_class.new foo, NOTHING expect(subject).to eql foo end it "ignores duplication" do subject = described_class.new foo, bar, foo expect(subject.attributes).to eql [foo, bar] end it "ignores NOTHING" do subject = described_class.new foo, bar, NOTHING expect(subject.attributes).to eql [foo, bar] end end # describe .new describe "#[]" do subject { composition[value] } context "when any of the conditions is satisfied" do let(:value) { "foo" } it { is_expected.to eql(true) } end # context context "when all conditions aren't satisfied" do let(:value) { "baz" } it { is_expected.to eql(false) } end # context end # describe #[] describe "#|" do subject { composition | baz } it { is_expected.to be_kind_of(described_class) } it "updates conditions (avoids nesting)" do expect(subject.attributes).to eql [foo, bar, baz] end end # describe #| end # describe Selector::Or end # module Selector
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
selector-0.0.3 | spec/unit/selector/or_spec.rb |
selector-0.0.2 | spec/unit/selector/or_spec.rb |
selector-0.0.1 | spec/unit/selector/or_spec.rb |