From 627824fd901e823cc87d74968f8238ea279e8684 Mon Sep 17 00:00:00 2001 From: Doan Nguyen Date: Mon, 11 Jul 2016 17:48:16 +0700 Subject: [PATCH] Update for React Native 0.28.0+ --- Example/package.json | 6 +++--- README.md | 4 ++-- env.js | 14 ++++++++++---- package.json | 10 ++++++---- react-native.js | 14 ++++---------- travis | 3 +-- 6 files changed, 26 insertions(+), 25 deletions(-) diff --git a/Example/package.json b/Example/package.json index fd32a88..93ea214 100644 --- a/Example/package.json +++ b/Example/package.json @@ -7,13 +7,13 @@ "test": "jest" }, "dependencies": { - "react": "^0.14.7", - "react-native": "^0.22.2" + "react": "^15.2.0", + "react-native": "^0.28.0" }, "devDependencies": { "enzyme": "^2.2.0", "babel-preset-airbnb": "2.0.0", - "react-dom": "0.14.7", + "react-dom": "^15.2.1", "react-native-babel-jest": "^0.x" }, "jest": { diff --git a/README.md b/README.md index 87f1027..d60b5d8 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,12 @@ Simple testing configuration for React Native with Jest ## Installation ```bash -npm i --save-dev react-native-babel-jest +npm i --save-dev react-native-babel-jest jest-cli ``` ## Usage Add configuration to `package.json` file -```bash +```javascript { "scripts": { "test": "jest" diff --git a/env.js b/env.js index 5b2120a..50f2bbb 100644 --- a/env.js +++ b/env.js @@ -1,9 +1,15 @@ 'use strict'; -/** - * Import react native env.js - */ -require('react-native/jestSupport/env.js'); +require.requireActual('react-native/packager/react-packager/src/Resolver/polyfills/babelHelpers.js'); + +global.__DEV__ = true; +global.__fbBatchedBridgeConfig = { + remoteModuleConfig: [], + localModulesConfig: [], +}; + +global.Promise = require('promise'); +global.regeneratorRuntime = require.requireActual('regenerator-runtime/runtime'); /** * Mock react-native diff --git a/package.json b/package.json index b7dd5e2..90580b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-babel-jest", - "version": "0.0.5", + "version": "0.1.0", "description": "Simple testing configuration for React Native with Jest", "main": "index.js", "scripts": { @@ -26,17 +26,19 @@ }, "homepage": "https://github.com/apentle/react-native-babel-jest#readme", "dependencies": { - "babel-core": "^6.0.0", + "babel-core": "^6.10.4", "babel-preset-react-native": "^1.9.0", - "jest-cli": "^11.0.2" + "promise": "^7.1.1", + "regenerator-runtime": "^0.9.5" }, "peerDependencies": { "react": "*", "react-native": "*" }, "devDependencies": { + "jest-cli": "^13.2.3", "jsonfile": "^2.3.0", - "react-native-mock": "^0.0.7" + "react-native-mock": "^0.2.4" }, "jest": { "scriptPreprocessor": "/index.js", diff --git a/react-native.js b/react-native.js index b7fac83..a4034f6 100644 --- a/react-native.js +++ b/react-native.js @@ -14,20 +14,21 @@ const renderToHTML = (type) => { if (typeof proto !== 'undefined') { const render = function () { var properties = {className: type}; + Object.assign(properties, this.props); /** * use onClick for Simulate instead of onPress */ if (typeof this.props.onPress !== 'undefined') { properties.onClick = this.props.onPress; + delete properties.onPress; } // TODO: add more event mapping - Object.assign(properties, this.props); return (
{this.props.children}
); }; - proto.__reactAutoBindMap['render'] = render; - proto.render = render; + //proto.__reactAutoBindPairs[proto.__reactAutoBindPairs.indexOf['render'] + 1] = render; + proto['render'] = render; } }; @@ -76,11 +77,4 @@ const renderToHTML = (type) => { 'WebView', ].forEach(renderToHTML); -/** - * ListView mock for react native - */ -ReactNative.ListView.defaultProps = { - renderScrollComponent: props => , -}; - module.exports = ReactNative; diff --git a/travis b/travis index 83891c8..a65c0ed 100755 --- a/travis +++ b/travis @@ -13,8 +13,7 @@ cd .. else # run before install in travis-ci -sed -i 's/"jest-cli"/"react": "^0.14.7","react-native": "^0.22.2","jest-cli"/g' package.json - +npm install react react-native npm install --only=dev node configure.js