Sha256: 1c9e55db4e28e99c63ca24695f41404ad2d8ec5d9700fb8902f95c71ccb27a0e
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
require "spec_helper" require "hamster/list" describe Hamster::List do let(:list) { Hamster.list(*values) } let(:filtered_list) { Hamster.list(*filtered_values) } describe "#filter" do it "is lazy" do expect { Hamster.stream { fail }.filter { |item| false } }.to_not raise_error end shared_examples "checking values" do context "with a block" do let(:filter) { list.filter { |item| item == item.upcase } } it "preserves the original" do expect(list).to eq(Hamster.list(*values)) end it "returns the filtered list" do expect(filter).to eq(filtered_list) end end context "without a block" do let(:filter) { list.filter } it "returns itself" do expect(filter).to eq(list) end end end context "with an empty array" do let(:values) { [] } let(:filtered_values) { [] } include_examples "checking values" end context "with a single item array" do let(:values) { ["A"] } let(:filtered_values) { ["A"] } include_examples "checking values" end context "with a multi-item array" do let(:values) { %w[A B] } let(:filtered_values) { %w[A B] } include_examples "checking values" end context "with a multi-item single filterable array" do let(:values) { %w[A b] } let(:filtered_values) { ["A"] } include_examples "checking values" end context "with a multi-item multi-filterable array" do let(:values) { %w[a b] } let(:filtered_values) { [] } include_examples "checking values" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hamster-1.0.1.pre.rc2 | spec/hamster/list/filter_spec.rb |
hamster-1.0.1.pre.rc.1 | spec/hamster/list/filter_spec.rb |