mzgoddard / preact-render-spy

Render preact components with access to the produced virtual dom for testing.

Home Page:https://www.npmjs.com/package/preact-render-spy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

document.createDocumentFragment is not a function

01binary opened this issue · comments

Getting the following:

TypeError: document.createDocumentFragment is not a function
      at RenderContext (node_modules/preact-render-spy/src/preact-render-spy.js:345:46)
      at deep (node_modules/preact-render-spy/src/preact-render-spy.js:373:49)
      at Context.<anonymous> (test/components/Burnout.tests.js:12:13)

My mocha/chai setup is:

import chai from 'chai';
import assertJsx from 'preact-jsx-chai';
import 'undom/register';
import 'babel-polyfill';
import 'ignore-styles';

I am using undom as you can see - what dom do you expect?

 "devDependencies": {
    "babel-plugin-module-resolver": "^2.7.1",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.6.0",
    "babel-register": "^6.26.0",
    "chai": "^4.1.2",
    "eslint": "^4.6.1",
    "eslint-config-synacor": "^1.1.1",
    "if-env": "^1.0.0",
    "ignore-styles": "^5.0.1",
    "mocha": "^3.5.0",
    "node-sass": "^4.5.3",
    "preact-cli": "^1.4.1",
    "preact-jsx-chai": "^2.2.1",
    "preact-render-spy": "^1.0.0-rc.8",
    "sass-lint": "^1.11.1",
    "sass-loader": "^6.0.6",
    "undom": "^0.3.3"
  },
  "dependencies": {
    "preact": "^8.2.5",
    "preact-compat": "^3.17.0",
    "react": "npm:preact-compat",
    "recompose": "^0.25.0"
  }

Found cedf32f but it has not been published to npm?

My preact-render-spy.js inside node_modules does not have that option you added. Otherwise the following would work:

import 'undom/register';
import { config } from 'preact-render-spy';

config.createFragment = () => global.document.createElement('#fragment');

Got it working with preact slack suggestion from Jason Miller:

import 'undom/register';

global.document.createDocumentFragment = () =>
	global.document.createElement('#fragment');