From e9e04d8336c0bd5a4d1bb9c6b161a5932f5731e1 Mon Sep 17 00:00:00 2001 From: SleepWalker Date: Thu, 2 Mar 2017 07:58:33 +0200 Subject: [PATCH] #313: improve logging in auth states --- src/services/authFlow/AcceptRulesState.js | 4 +++- src/services/authFlow/ActivationState.js | 4 +++- src/services/authFlow/AuthFlow.js | 2 +- src/services/authFlow/LoginState.js | 4 +++- src/services/authFlow/PasswordState.js | 4 +++- src/services/authFlow/RecoverPasswordState.js | 4 +++- src/services/authFlow/RegisterState.js | 4 +++- src/services/authFlow/ResendActivationState.js | 4 +++- src/services/logger.js | 7 +++++++ .../profile/changePassword/ChangePassword.test.jsx | 2 +- 10 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/services/authFlow/AcceptRulesState.js b/src/services/authFlow/AcceptRulesState.js index c1ae468..3281f4f 100644 --- a/src/services/authFlow/AcceptRulesState.js +++ b/src/services/authFlow/AcceptRulesState.js @@ -17,7 +17,9 @@ export default class AcceptRulesState extends AbstractState { resolve(context) { context.run('acceptRules') .then(() => context.setState(new CompleteState())) - .catch((err = {}) => err.errors || logger.warn(err)); + .catch((err = {}) => + err.errors || logger.warn('Error accepting rules', err) + ); } reject(context) { diff --git a/src/services/authFlow/ActivationState.js b/src/services/authFlow/ActivationState.js index 55e1878..b0bff83 100644 --- a/src/services/authFlow/ActivationState.js +++ b/src/services/authFlow/ActivationState.js @@ -21,7 +21,9 @@ export default class ActivationState extends AbstractState { resolve(context, payload) { context.run('activate', payload) .then(() => context.setState(new CompleteState())) - .catch((err = {}) => err.errors || logger.warn(err)); + .catch((err = {}) => + err.errors || logger.warn('Error activating account', err) + ); } reject(context) { diff --git a/src/services/authFlow/AuthFlow.js b/src/services/authFlow/AuthFlow.js index f2dabf8..75806c1 100644 --- a/src/services/authFlow/AuthFlow.js +++ b/src/services/authFlow/AuthFlow.js @@ -85,7 +85,7 @@ export default class AuthFlow { if (this.onReady) { const callback = this.onReady; this.onReady = () => {}; - return resp.then(callback, (err) => err || logger.warn(err)); + return resp.then(callback, (err) => err || logger.warn('State transition error', err)); } return resp; diff --git a/src/services/authFlow/LoginState.js b/src/services/authFlow/LoginState.js index 991790c..abb281b 100644 --- a/src/services/authFlow/LoginState.js +++ b/src/services/authFlow/LoginState.js @@ -24,7 +24,9 @@ export default class LoginState extends AbstractState { resolve(context, payload) { context.run('login', payload) .then(() => context.setState(new PasswordState())) - .catch((err = {}) => err.errors || logger.warn(err)); + .catch((err = {}) => + err.errors || logger.warn('Error validating login', err) + ); } goBack(context) { diff --git a/src/services/authFlow/PasswordState.js b/src/services/authFlow/PasswordState.js index f6d056b..3c1988d 100644 --- a/src/services/authFlow/PasswordState.js +++ b/src/services/authFlow/PasswordState.js @@ -25,7 +25,9 @@ export default class PasswordState extends AbstractState { login }) .then(() => context.setState(new CompleteState())) - .catch((err = {}) => err.errors || logger.warn(err)); + .catch((err = {}) => + err.errors || logger.warn('Error logging in', err) + ); } reject(context) { diff --git a/src/services/authFlow/RecoverPasswordState.js b/src/services/authFlow/RecoverPasswordState.js index a63d67e..43c2a23 100644 --- a/src/services/authFlow/RecoverPasswordState.js +++ b/src/services/authFlow/RecoverPasswordState.js @@ -21,7 +21,9 @@ export default class RecoverPasswordState extends AbstractState { resolve(context, payload) { context.run('recoverPassword', payload) .then(() => context.setState(new CompleteState())) - .catch((err = {}) => err.errors || logger.warn(err)); + .catch((err = {}) => + err.errors || logger.warn('Error recovering password', err) + ); } goBack(context) { diff --git a/src/services/authFlow/RegisterState.js b/src/services/authFlow/RegisterState.js index 1503bbd..6291c51 100644 --- a/src/services/authFlow/RegisterState.js +++ b/src/services/authFlow/RegisterState.js @@ -13,7 +13,9 @@ export default class RegisterState extends AbstractState { resolve(context, payload) { context.run('register', payload) .then(() => context.setState(new CompleteState())) - .catch((err = {}) => err.errors || logger.warn(err)); + .catch((err = {}) => + err.errors || logger.warn('Error registering', err) + ); } reject(context, payload) { diff --git a/src/services/authFlow/ResendActivationState.js b/src/services/authFlow/ResendActivationState.js index 890d63d..56559e5 100644 --- a/src/services/authFlow/ResendActivationState.js +++ b/src/services/authFlow/ResendActivationState.js @@ -19,7 +19,9 @@ export default class ResendActivationState extends AbstractState { resolve(context, payload) { context.run('resendActivation', payload) .then(() => context.setState(new ActivationState())) - .catch((err = {}) => err.errors || logger.warn(err)); + .catch((err = {}) => + err.errors || logger.warn('Error resending activation', err) + ); } reject(context) { diff --git a/src/services/logger.js b/src/services/logger.js index a09c205..5960cdb 100644 --- a/src/services/logger.js +++ b/src/services/logger.js @@ -65,6 +65,13 @@ const logger = { return; } + if (typeof context !== 'object') { + // it would better to always have an object here + context = { + message: context + }; + } + console[method](message, context); // eslint-disable-line Raven.captureException(message, { diff --git a/tests/components/profile/changePassword/ChangePassword.test.jsx b/tests/components/profile/changePassword/ChangePassword.test.jsx index 60f38c3..2c68985 100644 --- a/tests/components/profile/changePassword/ChangePassword.test.jsx +++ b/tests/components/profile/changePassword/ChangePassword.test.jsx @@ -14,7 +14,7 @@ describe('', () => { it('should call onSubmit if passwords entered', () => { - const onSubmit = sinon.spy().named('onSubmit'); + const onSubmit = sinon.spy(() => ({catch: () => {}})).named('onSubmit'); const component = shallow(); component.find('Form').simulate('submit');