ElemeFE / element-react

Element UI
https://elemefe.github.io/element-react/index
MIT License
2.83k stars 444 forks source link

Snapshot testing issue #687

Open nWidart opened 6 years ago

nWidart commented 6 years ago

Description

While trying to snapshot test a component that uses the Table component from element-react, I'm getting the following error:

TypeError: Cannot read property 'clientWidth' of null

Reproduce Steps

  1. Create a component, that uses the Table component
  2. Create a jest test with
    it('renders correctly', () => {
    const tree = renderer
      .create(<CampaignList />)
      .toJSON();
    expect(tree).toMatchSnapshot();
    });
  3. This wil show the error above.

Error Trace (if possible)


      at TableLayout.caculateWidth (node_modules/element-react/dist/npm/es5/src/table/TableLayout.js:160:36)
      at TableLayout.scheduleLayout (node_modules/element-react/dist/npm/es5/src/table/TableLayout.js:137:26)
      at TableLayout.componentDidMount (node_modules/element-react/dist/npm/es5/src/table/TableLayout.js:81:12)
      at commitLifeCycles (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:4553:24)
      at commitAllLifeCycles (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:5729:9)
      at HTMLUnknownElement.callCallback (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1610:14)
      at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:219:27)
      at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:126:9)
      at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:87:17)
      at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js:36:27)
      at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:61:35)
      at Object.invokeGuardedCallbackDev (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1649:16)
      at invokeGuardedCallback (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1506:29)
      at commitRoot (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:5833:9)
      at performWorkOnRoot (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6800:42)
      at performWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6750:7)

Did I miss something?

Thanks

nWidart commented 6 years ago

Tried snapshot testing on a form and there it throws the following:

TypeError: Cannot read property '__resizeTrigger__' of undefined
    at addResizeListener (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/element-react/dist/npm/es5/libs/utils/resize-event.js:151:17)
    at Scrollbar.componentDidMount (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/element-react/dist/npm/es5/src/scrollbar/Scrollbar.js:75:44)
    at commitLifeCycles (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:4553:24)
    at commitAllLifeCycles (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:5729:9)
    at HTMLUnknownElement.callCallback (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1610:14)
    at invokeEventListeners (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:219:27)
    at HTMLUnknownElementImpl._dispatch (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:126:9)
    at HTMLUnknownElementImpl.dispatchEvent (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:87:17)
    at HTMLUnknownElementImpl.dispatchEvent (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js:36:27)
    at HTMLUnknownElement.dispatchEvent (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:61:35)
    at Object.invokeGuardedCallbackDev (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1649:16)
    at invokeGuardedCallback (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1506:29)
    at commitRoot (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:5833:9)
    at performWorkOnRoot (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6800:42)
    at performWork (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6750:7)
    at requestWork (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6661:7)
    at scheduleWorkImpl (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6515:11)
    at scheduleWork (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6472:12)
    at scheduleTopLevelUpdate (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6976:5)
    at Object.updateContainer (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:7014:7)
    at Object.create (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/react-test-renderer/cjs/react-test-renderer.development.js:7637:18)
    at Object.<anonymous> (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/src/components/campaign/__tests__/CampaignForm.tsx:18:9)
    at Object.asyncFn (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/jest-jasmine2/build/jasmine-async.js:68:30)
    at resolve (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/jest-jasmine2/build/queueRunner.js:38:12)
    at Promise (<anonymous>)
    at mapper (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/jest-jasmine2/build/queueRunner.js:31:21)
    at Promise.resolve.then.el (/Users/nicolaswidart/Sites/Freelance/IgnitionOne/TriggeredEmail/ui/node_modules/p-map/index.js:46:16)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)