diff --git a/mitmproxy/tools/web/static/app.js b/mitmproxy/tools/web/static/app.js index 864f0a49c..8ee4d97d5 100644 Binary files a/mitmproxy/tools/web/static/app.js and b/mitmproxy/tools/web/static/app.js differ diff --git a/web/src/js/__tests__/ducks/connectionSpec.js b/web/src/js/__tests__/ducks/connectionSpec.js new file mode 100644 index 000000000..d087e867e --- /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 e8feb20eb..1ee42e259 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 connecting…; case ConnectionState.FETCHING: @@ -18,7 +18,8 @@ function ConnectionIndicator({ state, message }) { case ConnectionState.ESTABLISHED: return connected; case ConnectionState.ERROR: - return connection lost; + return connection lost; case ConnectionState.OFFLINE: return offline; } diff --git a/web/src/js/components/common/DocsLink.jsx b/web/src/js/components/common/DocsLink.jsx index 182811a30..53c7aca84 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,