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,