Sha256: 08b851123521ab961f80c7a0dc0e033883d645d5ba684a916691a7f1d376e14c
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
require 'spec_helper' describe "When overriding original methods with .immediate" do let(:base_object) { Decorum::Examples::WeakWilledClass.new } it "has an original method" do expect(base_object.method_in_question).to eq("original") end it "overrides original methods" do base_object._decorum_decorate(Decorum::Examples::StrongWilledDecorator) expect(base_object.method_in_question).to eq("overridden") end it "reverts to original method when decorator is unloaded" do base_object._decorum_decorate(Decorum::Examples::StrongWilledDecorator) base_object._decorum_undecorate(base_object._decorum_decorators.first) expect(base_object.method_in_question).to eq("original") end it "stops chain on vanished method" do base_object._decorum_decorate(Decorum::Examples::StrongWilledDecorator) # raise on violated assumptions rather than have multiple conditions in the same test? resp = base_object.second_immediate_method unless resp == "method dos" bail_message = "Bad test data: base_object doesn't have #second_immediate_method, got #{resp}" raise bail_message end base_object._decorum_undecorate(base_object._decorum_decorators.first) expect(base_object.second_immediate_method).to eq("class method_missing") end it "recurses" do 4.times { base_object._decorum_decorate(Decorum::Examples::ImmediateDecorator) } expect(base_object.increment_immediately_shared).to eq(4) end it "recurses on namespaced decorator" do 4.times { base_object._decorum_decorate(Decorum::Examples::ImmediateDecorator, namespace: :foo) } expect(base_object.foo.increment_immediately_shared).to eq(4) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decorum-0.5.1 | spec/integration/immediate_methods_spec.rb |
decorum-0.5.0 | spec/integration/immediate_methods_spec.rb |