diff options
author | Maximilian Hils <git@maximilianhils.com> | 2017-04-29 19:43:59 +0200 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2017-04-29 19:43:59 +0200 |
commit | 97a00728a85a32ca6a8e98a991f6dcf28809e73b (patch) | |
tree | dd4718766f4e3e2b22d4dc76e57a24a414b5a4ac | |
parent | 8f1b763082d0d00bee0b1e97f9c8bfb740083c63 (diff) | |
download | mitmproxy-97a00728a85a32ca6a8e98a991f6dcf28809e73b.tar.gz mitmproxy-97a00728a85a32ca6a8e98a991f6dcf28809e73b.tar.bz2 mitmproxy-97a00728a85a32ca6a8e98a991f6dcf28809e73b.zip |
[web] add connection tests
-rw-r--r-- | mitmproxy/tools/web/static/app.js | 25 | ||||
-rw-r--r-- | web/src/js/__tests__/ducks/connectionSpec.js | 41 | ||||
-rw-r--r-- | web/src/js/components/Header/ConnectionIndicator.jsx | 11 | ||||
-rw-r--r-- | web/src/js/components/common/DocsLink.jsx | 2 |
4 files changed, 63 insertions, 16 deletions
diff --git a/mitmproxy/tools/web/static/app.js b/mitmproxy/tools/web/static/app.js index 864f0a49..8ee4d97d 100644 --- a/mitmproxy/tools/web/static/app.js +++ b/mitmproxy/tools/web/static/app.js @@ -3358,19 +3358,19 @@ var _react = require("react"); var _react2 = _interopRequireDefault(_react); -var _reactRedux = require("react-redux"); +var _propTypes = require("prop-types"); -var _classnames = require("classnames"); +var _propTypes2 = _interopRequireDefault(_propTypes); -var _classnames2 = _interopRequireDefault(_classnames); +var _reactRedux = require("react-redux"); var _connection = require("../../ducks/connection"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } ConnectionIndicator.propTypes = { - state: _react.PropTypes.symbol.isRequired, - message: _react.PropTypes.string + state: _propTypes2.default.symbol.isRequired, + message: _propTypes2.default.string }; function ConnectionIndicator(_ref) { @@ -3399,7 +3399,8 @@ function ConnectionIndicator(_ref) { case _connection.ConnectionState.ERROR: return _react2.default.createElement( "span", - { className: "connection-indicator error", title: message }, + { className: "connection-indicator error", + title: message }, "connection lost" ); case _connection.ConnectionState.OFFLINE: @@ -3415,7 +3416,7 @@ exports.default = (0, _reactRedux.connect)(function (state) { return state.connection; })(ConnectionIndicator); -},{"../../ducks/connection":49,"classnames":"classnames","react":"react","react-redux":"react-redux"}],29:[function(require,module,exports){ +},{"../../ducks/connection":49,"prop-types":"prop-types","react":"react","react-redux":"react-redux"}],29:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -4952,10 +4953,14 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = DocsLink; -var _react = require("react"); +var _propTypes = require("prop-types"); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } DocsLink.propTypes = { - resource: _react.PropTypes.string.isRequired + resource: _propTypes2.default.string.isRequired }; function DocsLink(_ref) { @@ -4970,7 +4975,7 @@ function DocsLink(_ref) { ); } -},{"react":"react"}],43:[function(require,module,exports){ +},{"prop-types":"prop-types"}],43:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, "__esModule", { diff --git a/web/src/js/__tests__/ducks/connectionSpec.js b/web/src/js/__tests__/ducks/connectionSpec.js new file mode 100644 index 00000000..d087e867 --- /dev/null +++ b/web/src/js/__tests__/ducks/connectionSpec.js @@ -0,0 +1,41 @@ +import reduceConnection from "../../ducks/connection" +import * as ConnectionActions from "../../ducks/connection" +import { ConnectionState } from "../../ducks/connection" + +describe('connection reducer', () => { + it('should return initial state', () => { + expect(reduceConnection(undefined, {})).toEqual({ + state: ConnectionState.INIT, + message: null, + }) + }) + + it('should handle start fetch', () => { + expect(reduceConnection(undefined, ConnectionActions.startFetching())).toEqual({ + state: ConnectionState.FETCHING, + message: undefined, + }) + }) + + it('should handle connection established', () => { + expect(reduceConnection(undefined, ConnectionActions.connectionEstablished())).toEqual({ + state: ConnectionState.ESTABLISHED, + message: undefined, + }) + }) + + it('should handle connection error', () => { + expect(reduceConnection(undefined, ConnectionActions.connectionError("no internet"))).toEqual({ + state: ConnectionState.ERROR, + message: "no internet", + }) + }) + + it('should handle offline mode', () => { + expect(reduceConnection(undefined, ConnectionActions.setOffline())).toEqual({ + state: ConnectionState.OFFLINE, + message: undefined, + }) + }) + +}) diff --git a/web/src/js/components/Header/ConnectionIndicator.jsx b/web/src/js/components/Header/ConnectionIndicator.jsx index e8feb20e..1ee42e25 100644 --- a/web/src/js/components/Header/ConnectionIndicator.jsx +++ b/web/src/js/components/Header/ConnectionIndicator.jsx @@ -1,7 +1,7 @@ -import React, { PropTypes } from "react" +import React from "react" +import PropTypes from "prop-types" import { connect } from "react-redux" -import classnames from "classnames" -import {ConnectionState} from "../../ducks/connection" +import { ConnectionState } from "../../ducks/connection" ConnectionIndicator.propTypes = { @@ -10,7 +10,7 @@ ConnectionIndicator.propTypes = { } function ConnectionIndicator({ state, message }) { - switch(state){ + switch (state) { case ConnectionState.INIT: return <span className="connection-indicator init">connecting…</span>; case ConnectionState.FETCHING: @@ -18,7 +18,8 @@ function ConnectionIndicator({ state, message }) { case ConnectionState.ESTABLISHED: return <span className="connection-indicator established">connected</span>; case ConnectionState.ERROR: - return <span className="connection-indicator error" title={message}>connection lost</span>; + return <span className="connection-indicator error" + title={message}>connection lost</span>; case ConnectionState.OFFLINE: return <span className="connection-indicator offline">offline</span>; } diff --git a/web/src/js/components/common/DocsLink.jsx b/web/src/js/components/common/DocsLink.jsx index 182811a3..53c7aca8 100644 --- a/web/src/js/components/common/DocsLink.jsx +++ b/web/src/js/components/common/DocsLink.jsx @@ -1,4 +1,4 @@ -import { PropTypes } from 'react' +import PropTypes from "prop-types" DocsLink.propTypes = { resource: PropTypes.string.isRequired, |