Skip to content

mount Suspense and throw promise - Enzyme Internal Error: unknown node with tag 2 #2205

@json2d

Description

@json2d

Current behavior

Getting error Enzyme Internal Error: unknown node with tag 2

from mounting Suspense component with child component that throws promise:

import React, { Suspense } from "react"; const Message = props => <div>Hello Enzyme!</div> const Loading = props => <div>loading...</div> const Thrower = props => { throw new Promise(resolve => { setTimeout(resolve, 1000); }); }; describe("integration with Suspense component", () => { test("should render Message component", () => { const wrapper = mount( <Suspense fallback={<Loading />}> <Message /> </Suspense> ); expect(wrapper.find(Message)).toExist(); // ✅ passes }); test("should render Loading component", () => { const wrapper = mount( <Suspense fallback={<Loading />}> <Thrower /> </Suspense> ); expect(wrapper.find(Loading)).toExist(); // ❌ Enzyme Internal Error: unknown node with tag 2 }); })

trace:

 Enzyme Internal Error: unknown node with tag 2 20 | 21 | test("should render Loading component", () => { > 22 | const wrapper = mount( | ^ 23 | <Suspense fallback={<Loading />}> 24 | <Thrower /> 25 | </Suspense> at _toTree (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:254:13) at toTree (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:267:12) at childrenToTree (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:227:14) at Array.map (<anonymous>) at map (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:269:27) at childrenToTree (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:248:19) at toTree (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:267:12) at childrenToTree (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:169:19) at Object.toTree [as getNode] (node_modules/enzyme-adapter-react-16/src/ReactSixteenAdapter.js:448:11) at new getNode (node_modules/enzyme/src/ReactWrapper.js:117:44) at mount (node_modules/enzyme/src/mount.js:10:10) at Object.mount (__tests__/Suspense.spec.js:22:21) 

Expected behavior

No error

Your environment

API

  • shallow
  • mount
  • render

Version

library version
enzyme 3.10.0
jest-enzyme 7.0.2
react 16.8.6
react-dom 16.8.6
react-test-renderer 16.8.6
adapter (below) 1.14.0

Adapter

  • enzyme-adapter-react-16
  • enzyme-adapter-react-16.3
  • enzyme-adapter-react-16.2
  • enzyme-adapter-react-16.1
  • enzyme-adapter-react-15
  • enzyme-adapter-react-15.4
  • enzyme-adapter-react-14
  • enzyme-adapter-react-13
  • enzyme-adapter-react-helper
  • others ( )

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions