From c990b3434db86be4ca73b578b2bc6710fb7065b9 Mon Sep 17 00:00:00 2001
From: Alexander Fedyashov <af@e42.guru>
Date: Thu, 31 Aug 2017 18:51:47 +0300
Subject: [PATCH] fix(shallow): fix shallow test util

---
 test/utils/shallow.js | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/test/utils/shallow.js b/test/utils/shallow.js
index 844cbb33fa..1f8f2fb9fa 100644
--- a/test/utils/shallow.js
+++ b/test/utils/shallow.js
@@ -2,17 +2,20 @@ import { ShallowWrapper } from 'enzyme'
 
 const meetsName = (wrapper, name) => name === wrapper.type().name
 
-const dive = wrapper => {
+const dive = (wrapper) => {
+  /* eslint-disable no-param-reassign */
   if (meetsName(wrapper, 'refHOC')) wrapper = wrapper.dive()
   if (meetsName(wrapper, 'Ref')) wrapper = wrapper.dive()
+  /* eslint-enable */
 
   return wrapper
 }
 
-class Wrapper extends ShallowWrapper {
-  shallow(options) {
-    return this.single('shallow', n => dive(new Wrapper(n, null, options)))
-  }
+// Heads up! This monkey patch overrides behaviour of shallow() method of Enzyme
+const shallowMethod = ShallowWrapper.prototype.shallow
+
+ShallowWrapper.prototype.shallow = function (...args) {
+  return dive(shallowMethod.apply(this, ...args))
 }
 
-export default (...args) => dive(new Wrapper(...args))
+export default (...args) => dive(new ShallowWrapper(...args))