Skip to content

Commit

Permalink
most basic implementation of adapter calling toTree from react-test-r…
Browse files Browse the repository at this point in the history
…enderer
  • Loading branch information
Pete Gleeson committed May 2, 2018
1 parent 024586e commit f6f6eca
Show file tree
Hide file tree
Showing 9 changed files with 112 additions and 0 deletions.
6 changes: 6 additions & 0 deletions packages/enzyme-adapter-react-renderer/.babelrc
@@ -0,0 +1,6 @@
{
"presets": ["airbnb"],
"plugins": [
["transform-replace-object-assign", "object.assign"],
],
}
2 changes: 2 additions & 0 deletions packages/enzyme-adapter-react-renderer/.eslintignore
@@ -0,0 +1,2 @@
_book/
build/
12 changes: 12 additions & 0 deletions packages/enzyme-adapter-react-renderer/.eslintrc
@@ -0,0 +1,12 @@
{
"rules": {
"import/no-extraneous-dependencies": 0,
"import/no-unresolved": 0,
"import/extensions": 0,
"react/no-deprecated": 0,
"react/no-find-dom-node": 0,
"react/no-multi-comp": 0,
"no-underscore-dangle": 0,
"class-methods-use-this": 0
}
}
1 change: 1 addition & 0 deletions packages/enzyme-adapter-react-renderer/.npmignore
1 change: 1 addition & 0 deletions packages/enzyme-adapter-react-renderer/.npmrc
@@ -0,0 +1 @@
package-lock=false
1 change: 1 addition & 0 deletions packages/enzyme-adapter-react-renderer/README.md
56 changes: 56 additions & 0 deletions packages/enzyme-adapter-react-renderer/package.json
@@ -0,0 +1,56 @@
{
"name": "enzyme-adapter-react-renderer",
"version": "0.0.1",
"description": "JavaScript Testing utilities for React",
"homepage": "http://airbnb.io/enzyme/",
"main": "build",
"scripts": {
"clean": "rimraf build",
"lint": "eslint --ext js,jsx .",
"pretest": "npm run lint",
"prebuild": "npm run clean",
"build": "babel src --out-dir build",
"watch": "npm run build -- -w",
"prepublish": "npm run build && safe-publish-latest"
},
"repository": {
"type": "git",
"url": "https://github.com/airbnb/enzyme.git"
},
"keywords": [
"javascript",
"shallow rendering",
"shallowRender",
"test",
"reactjs",
"react",
"flux",
"testing",
"test utils",
"assertion helpers",
"tdd",
"mocha"
],
"author": "Leland Richardson <leland.richardson@airbnb.com>",
"license": "MIT",
"dependencies": {
"react-test-renderer": "^16.3.2"
},
"peerDependencies": {
"enzyme": "^3.0.0",
"react": "^16.3.2",
"react-dom": "^16.3.2"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"enzyme": "^3.0.0",
"eslint": "^4.18.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-react": "^7.6.1",
"in-publish": "^2.0.0",
"rimraf": "^2.6.2",
"safe-publish-latest": "^1.1.1"
}
}
@@ -0,0 +1,31 @@
import { EnzymeAdapter } from 'enzyme';
import ReactTestRenderer from 'react-test-renderer';

class ReactTestRendererAdapter extends EnzymeAdapter {
constructor() {
super();
}
createMountRenderer(options) {
let instance = null;
return {
render(element) {
instance = ReactTestRenderer.create(element);
},
getNode() {
return instance.toTree();
},
unmount() {
instance.unmount();
}
};
}
createRenderer(options) {
switch (options.mode) {
case EnzymeAdapter.MODES.MOUNT: return this.createMountRenderer(options);
default:
throw new Error(`Enzyme Internal Error: Unrecognized mode: ${options.mode}`);
}
}
}

module.exports = ReactTestRendererAdapter;
2 changes: 2 additions & 0 deletions packages/enzyme-adapter-react-renderer/src/index.js
@@ -0,0 +1,2 @@
/* eslint global-require: 0 */
module.exports = require('./ReactTestRendererAdapter');

0 comments on commit f6f6eca

Please sign in to comment.