UNPKG

5.01 kBJavaScriptView Raw
1'use strict';
2
3var _jsdom = require('jsdom');
4
5var _reactAddonsTestUtils = require('react-addons-test-utils');
6
7var _reactAddonsTestUtils2 = _interopRequireDefault(_reactAddonsTestUtils);
8
9var _react = require('react');
10
11var _react2 = _interopRequireDefault(_react);
12
13var _reactDom = require('react-dom');
14
15var _reactDom2 = _interopRequireDefault(_reactDom);
16
17var _xhr = require('xhr2');
18
19var _xhr2 = _interopRequireDefault(_xhr);
20
21var _nock = require('nock');
22
23var _nock2 = _interopRequireDefault(_nock);
24
25function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
27/*eslint-disable react/no-deprecated*/
28
29//$Id$//
30var mockDomain = 'htt' + 'p://zoho.com';
31global.document = (0, _jsdom.jsdom)('<!doctype html><html><body></body></html>');
32global.window = document.defaultView;
33global.navigator = global.window.navigator;
34global.localStorage = global.sessionStorage = {
35 getItem: function getItem(key) {
36 return this[key];
37 },
38 setItem: function setItem(key, value) {
39 if (value.length > 100) {
40 throw new Error('Data size is too exceeded');
41 }
42 this[key] = value;
43 },
44 removeItem: function removeItem(key) {
45 delete this[key];
46 },
47 clear: function clear() {
48 var keys = ['getItem', 'setItem', 'removeItem', 'clear'];
49 for (var key in this) {
50 if (keys.indexOf(key) === -1) {
51 delete this[key];
52 }
53 }
54 }
55};
56global.ZE_Init = {};
57global.String.prototype.contains = function (text) {
58 return this.indexOf(text) != -1;
59};
60global.TestUtils = _reactAddonsTestUtils2.default;
61var xmlReq = _xhr2.default;
62window.XMLHttpRequest = function () {
63 var xmlReqCopy = new xmlReq();
64 var originalOpen = xmlReqCopy.open;
65 xmlReqCopy.open = function () {
66 if (arguments[1].indexOf('http') != 0) {
67 arguments[1] = mockDomain + arguments[1];
68 }
69 return originalOpen.apply(this, arguments);
70 };
71 return xmlReqCopy;
72};
73
74_reactAddonsTestUtils2.default.scryRenderedComponentsWithTestid = function (dom, name) {
75 var componentList = _reactAddonsTestUtils2.default.findAllInRenderedTree(dom, function (i, j) {
76 if (_reactAddonsTestUtils2.default.isDOMComponent(i)) {
77 var val = i.getAttribute('data-id');
78 if (typeof val !== 'undefined' && val == name) {
79 return true;
80 }
81 return false;
82 }
83 });
84 return componentList;
85};
86
87_reactAddonsTestUtils2.default.findRenderedComponentsWithTestid = function (dom, name) {
88 var list = _reactAddonsTestUtils2.default.scryRenderedComponentsWithTestid(dom, name);
89 if (list.length !== 1) {
90 throw new Error('Did not find exactly one match (found: ' + list.length + ') ' + ('for data-id:' + name));
91 }
92 return list[0];
93};
94
95global.render = function (Component, props) {
96 var renderedDOM = _reactAddonsTestUtils2.default.renderIntoDocument(_react2.default.createElement(Component, props));
97 return {
98 props: props,
99 renderedDOM: renderedDOM
100 };
101};
102
103global.setup = function (Component, props, state) {
104 var router = {
105 router: {
106 push: function push() {},
107 createHref: function createHref(ob) {
108 return ob.pathname;
109 },
110 isActive: function isActive() {
111 return true;
112 },
113 replace: function replace() {},
114 go: function go() {},
115 goBack: function goBack() {},
116 goForward: function goForward() {},
117 setRouteLeaveHook: function setRouteLeaveHook() {},
118 getState: function getState() {}
119 },
120 store: {
121 getState: function getState() {
122 return state;
123 }
124 }
125 };
126 // var store = {
127 // store:{
128 // getState:function(){return state;}
129 // }
130 // }
131 var Component = higherComponent(Component, router);
132 var renderedDOM = _reactAddonsTestUtils2.default.renderIntoDocument(_react2.default.createElement(Component, props), router);
133 return {
134 props: props,
135 renderedDOM: renderedDOM
136 };
137};
138
139function higherComponent(ActualComponent, context) {
140 if (context) {
141 var HigherComponent = _react2.default.createClass({
142 displayName: 'HigherComponent',
143 getChildContext: function getChildContext() {
144 return context;
145 },
146 render: function render() {
147 return _react2.default.createElement(ActualComponent, this.props);
148 },
149
150 childContextTypes: {
151 router: _react2.default.PropTypes.any,
152 store: _react2.default.PropTypes.any
153 }
154 });
155 return HigherComponent;
156 }
157 return ActualComponent;
158}
159global.window.matchMedia = window.matchMedia || function () {
160 return {
161 matches: false,
162 addListener: function addListener() {},
163 removeListener: function removeListener() {}
164 };
165};
166
167global.renderHTML = function (comp) {
168 var a = _reactDom2.default.findDOMNode(comp);
169 console.log(a.innerHTML);
170};
171
172global.TestUtils = _reactAddonsTestUtils2.default;
173global.XMLHttpRequest = window.XMLHttpRequest;
174global.getI18NValue = function (inp) {
175 return inp;
176};
177
178var hook = require('css-modules-require-hook');
179
180hook({
181 generateScopedName: '[name]__[local]___[hash:base64:5]'
182});
\No newline at end of file