diff --git a/spec/interactor/hooks_spec.rb b/spec/interactor/hooks_spec.rb index df1b245..f143a5b 100644 --- a/spec/interactor/hooks_spec.rb +++ b/spec/interactor/hooks_spec.rb @@ -364,11 +364,16 @@ def add_after2 } let(:inherited) { Class.new(hooked) } + let(:deeply_inherited) { Class.new(Class.new(inherited)) } - it "inherites around hooks from parent class" do + it "inherits around hooks from parent class" do expect(inherited.around_hooks).to eq(hooked.around_hooks) end + it "inherits around hooks from all ancestor classes" do + expect(deeply_inherited.around_hooks).to eq(hooked.around_hooks) + end + it "does not add hook to parent class" do inherited.class_eval { around { |hooked| hooked.call } } expect(inherited.around_hooks.size).not_to eq(hooked.around_hooks.size) @@ -384,11 +389,16 @@ def add_after2 } let(:inherited) { Class.new(hooked) } + let(:deeply_inherited) { Class.new(Class.new(inherited)) } - it "inherites before hooks from parent class" do + it "inherits before hooks from parent class" do expect(inherited.before_hooks).to eq(hooked.before_hooks) end + it "inherits before hooks from all ancestor classes" do + expect(deeply_inherited.before_hooks).to eq(hooked.before_hooks) + end + it "does not add hook to parent class" do inherited.class_eval { before {} } expect(inherited.before_hooks).not_to eq(hooked.before_hooks) @@ -404,11 +414,16 @@ def add_after2 } let(:inherited) { Class.new(hooked) } + let(:deeply_inherited) { Class.new(Class.new(inherited)) } - it "inherites after hooks from parent class" do + it "inherits after hooks from parent class" do expect(inherited.after_hooks).to eq(hooked.after_hooks) end + it "inherits after hooks from all ancestor classes" do + expect(deeply_inherited.before_hooks).to eq(hooked.before_hooks) + end + it "does not add hook to parent class" do inherited.class_eval { after {} } expect(inherited.after_hooks).not_to eq(hooked.after_hooks)