From 0f020acf2151c4ce235788810cd9a1c97b6937e7 Mon Sep 17 00:00:00 2001 From: Madison Capps Date: Fri, 3 Aug 2018 17:59:36 -0700 Subject: [PATCH] [refactor] [new] Refactor `getAdapter` from `Utils` into its own file --- .../enzyme-test-suite/test/ReactWrapper-spec.jsx | 2 +- .../enzyme-test-suite/test/ShallowWrapper-spec.jsx | 2 +- packages/enzyme-test-suite/test/Utils-spec.jsx | 2 +- packages/enzyme/src/Debug.js | 2 +- packages/enzyme/src/ReactWrapper.js | 2 +- packages/enzyme/src/ShallowWrapper.js | 2 +- packages/enzyme/src/Utils.js | 13 ++++--------- packages/enzyme/src/getAdapter.js | 12 ++++++++++++ packages/enzyme/src/render.js | 2 +- packages/enzyme/src/selectors.js | 3 ++- 10 files changed, 25 insertions(+), 17 deletions(-) create mode 100644 packages/enzyme/src/getAdapter.js diff --git a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx index becb339a8..c30203034 100644 --- a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx +++ b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx @@ -13,8 +13,8 @@ import { ITERATOR_SYMBOL, withSetStateAllowed, sym, - getAdapter, } from 'enzyme/build/Utils'; +import getAdapter from 'enzyme/build/getAdapter'; import './_helpers/setupAdapters'; import { diff --git a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx index cfdec2218..8e5786a1e 100644 --- a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx +++ b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx @@ -13,8 +13,8 @@ import { ITERATOR_SYMBOL, withSetStateAllowed, sym, - getAdapter, } from 'enzyme/build/Utils'; +import getAdapter from 'enzyme/build/getAdapter'; import './_helpers/setupAdapters'; import { createClass, createContext } from './_helpers/react-compat'; diff --git a/packages/enzyme-test-suite/test/Utils-spec.jsx b/packages/enzyme-test-suite/test/Utils-spec.jsx index 01b962659..94fac9b45 100644 --- a/packages/enzyme-test-suite/test/Utils-spec.jsx +++ b/packages/enzyme-test-suite/test/Utils-spec.jsx @@ -9,8 +9,8 @@ import { displayNameOfNode, spyMethod, nodeHasType, - getAdapter, } from 'enzyme/build/Utils'; +import getAdapter from 'enzyme/build/getAdapter'; import { flatten, mapNativeEventNames, diff --git a/packages/enzyme/src/Debug.js b/packages/enzyme/src/Debug.js index 83d5bfa1f..93d017024 100644 --- a/packages/enzyme/src/Debug.js +++ b/packages/enzyme/src/Debug.js @@ -12,7 +12,7 @@ import { propsOfNode, childrenOfNode, } from './RSTTraversal'; -import { getAdapter } from './Utils'; +import getAdapter from './getAdapter'; const booleanValue = Function.bind.call(Function.call, Boolean.prototype.valueOf); diff --git a/packages/enzyme/src/ReactWrapper.js b/packages/enzyme/src/ReactWrapper.js index e84fc7259..6266b40ee 100644 --- a/packages/enzyme/src/ReactWrapper.js +++ b/packages/enzyme/src/ReactWrapper.js @@ -9,12 +9,12 @@ import { ITERATOR_SYMBOL, nodeEqual, nodeMatches, - getAdapter, makeOptions, sym, privateSet, cloneElement, } from './Utils'; +import getAdapter from './getAdapter'; import { debugNodes } from './Debug'; import { propsOfNode, diff --git a/packages/enzyme/src/ShallowWrapper.js b/packages/enzyme/src/ShallowWrapper.js index 4ebdc9ddd..3aa18e78c 100644 --- a/packages/enzyme/src/ShallowWrapper.js +++ b/packages/enzyme/src/ShallowWrapper.js @@ -12,13 +12,13 @@ import { displayNameOfNode, isCustomComponentElement, ITERATOR_SYMBOL, - getAdapter, makeOptions, sym, privateSet, cloneElement, spyMethod, } from './Utils'; +import getAdapter from './getAdapter'; import { debugNodes } from './Debug'; import { propsOfNode, diff --git a/packages/enzyme/src/Utils.js b/packages/enzyme/src/Utils.js index 3ec746cf8..729cecec9 100644 --- a/packages/enzyme/src/Utils.js +++ b/packages/enzyme/src/Utils.js @@ -7,19 +7,14 @@ import has from 'has'; import flat from 'array.prototype.flat'; import { get } from './configuration'; -import validateAdapter from './validateAdapter'; import { childrenOfNode } from './RSTTraversal'; +import realGetAdapter from './getAdapter'; export const ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; export function getAdapter(options = {}) { - if (options.adapter) { - validateAdapter(options.adapter); - return options.adapter; - } - const { adapter } = get(); - validateAdapter(adapter); - return adapter; + console.warn('getAdapter from Utils is deprecated; please use ./getAdapter instead'); + return realGetAdapter(options); } export function makeOptions(options) { @@ -62,7 +57,7 @@ export function typeOfNode(node) { export function nodeHasType(node, type) { if (!type || !node) return false; - const adapter = getAdapter(); + const adapter = realGetAdapter(); if (adapter.displayNameOfNode) { const displayName = adapter.displayNameOfNode(node); return displayName === type; diff --git a/packages/enzyme/src/getAdapter.js b/packages/enzyme/src/getAdapter.js new file mode 100644 index 000000000..e733a5b59 --- /dev/null +++ b/packages/enzyme/src/getAdapter.js @@ -0,0 +1,12 @@ +import validateAdapter from './validateAdapter'; +import { get } from './configuration'; + +export default function getAdapter(options = {}) { + if (options.adapter) { + validateAdapter(options.adapter); + return options.adapter; + } + const { adapter } = get(); + validateAdapter(adapter); + return adapter; +} diff --git a/packages/enzyme/src/render.js b/packages/enzyme/src/render.js index 124f11aaa..bd3871feb 100644 --- a/packages/enzyme/src/render.js +++ b/packages/enzyme/src/render.js @@ -1,5 +1,5 @@ import cheerio from 'cheerio'; -import { getAdapter } from './Utils'; +import getAdapter from './getAdapter'; /** * Renders a react component into static HTML and provides a cheerio wrapper around it. This is diff --git a/packages/enzyme/src/selectors.js b/packages/enzyme/src/selectors.js index 8baab4237..8a34bfdaa 100644 --- a/packages/enzyme/src/selectors.js +++ b/packages/enzyme/src/selectors.js @@ -13,7 +13,8 @@ import { childrenOfNode, hasClassName, } from './RSTTraversal'; -import { getAdapter, nodeHasType, propsOfNode } from './Utils'; +import { nodeHasType, propsOfNode } from './Utils'; +import getAdapter from './getAdapter'; // our CSS selector parser instance const parser = createParser();