Sha256: 944c9e173b161c3b8b93e58d880e303e9de863674c71a3f4141df464d85f11b6

Contents?: true

Size: 938 Bytes

Versions: 49

Compression:

Stored size: 938 Bytes

Contents

##
# spec/lib/skn_utils/null_object_spec.rb
#

RSpec.describe SknUtils::NullObject, "NullObject with Helpers " do

  context "Null Object Operations" do
    it "consumes any method called on it" do
      expect(subject.any_method).to be_a(subject.class)
    end

    it "consumes the whole chain of methods called on it" do
      expect(subject.any_method.chaining_methods).to be_a(subject.class)
    end
  end

  context "Alternate #try() named #nullable?() " do
    it "#nullable?(value) returns null object if value is nil" do
      expect(SknUtils::nullable?(nil)).to be_a(subject.class)
    end

    it "#nullable?(value) consumes the whole chain of methods called on it if value is nil" do
      expect(SknUtils::nullable?(nil).any_method.chaining_methods).to be_a(subject.class)
    end
    it "#nullable?(value) returns the value if valid" do
      expect(SknUtils::nullable?({value: true})[:value]).to be true
    end
  end

end

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
skn_utils-5.8.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.7.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.6.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.5.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.4.1 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.4.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.3.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.2.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.1.3 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.1.2 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.1.1 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.1.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.0.2 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.0.1 spec/lib/skn_utils/null_object_spec.rb
skn_utils-5.0.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-4.0.4 spec/lib/skn_utils/null_object_spec.rb
skn_utils-4.0.3 spec/lib/skn_utils/null_object_spec.rb
skn_utils-4.0.1 spec/lib/skn_utils/null_object_spec.rb
skn_utils-4.0.0 spec/lib/skn_utils/null_object_spec.rb
skn_utils-3.6.0 spec/lib/skn_utils/null_object_spec.rb