diff --git a/dist/redux-oidc.js b/dist/redux-oidc.js index cc0de1d..5cd3f18 100644 --- a/dist/redux-oidc.js +++ b/dist/redux-oidc.js @@ -1 +1 @@ -!function(e,r){if("object"==typeof exports&&"object"==typeof module)module.exports=r(require("react"),require("co"),require("immutable"),require("oidc-client"));else if("function"==typeof define&&define.amd)define(["react","co","immutable","oidc-client"],r);else{var t="object"==typeof exports?r(require("react"),require("co"),require("immutable"),require("oidc-client")):r(e.react,e.co,e.immutable,e["oidc-client"]);for(var n in t)("object"==typeof exports?exports:e)[n]=t[n]}}(this,function(e,r,t,n){return function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){e.exports=t(8)},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.USER_EXPIRED="redux-oidc/USER_EXPIRED",r.REDIRECT_SUCCESS="redux-oidc/REDIRECT_SUCCESS",r.USER_LOADED="redux-oidc/USER_LOADED",r.SILENT_RENEW_ERROR="redux-oidc/SILENT_RENEW_ERROR",r.SESSION_TERMINATED="redux-oidc/SESSION_TERMINATED",r.USER_EXPIRING="redux-oidc/USER_EXPIRING",r.USER_FOUND="redux-oidc/USER_FOUND",r.LOADING_USER="redux-oidc/LOADING_USER",r.USER_SIGNED_OUT="redux-oidc/USER_SIGNED_OUT"},function(e,r,t){"use strict";function n(){return{type:l.USER_EXPIRED}}function o(e){return{type:l.REDIRECT_SUCCESS,payload:e}}function i(e){return{type:l.USER_FOUND,payload:e}}function s(e){return{type:l.SILENT_RENEW_ERROR,payload:e}}function u(){return{type:l.SESSION_TERMINATED}}function a(){return{type:l.USER_EXPIRING}}function c(){return{type:l.LOADING_USER}}function d(){return{type:l.USER_SIGNED_OUT}}Object.defineProperty(r,"__esModule",{value:!0}),r.userExpired=n,r.redirectSuccess=o,r.userFound=i,r.silentRenewError=s,r.sessionTerminated=u,r.userExpiring=a,r.loadingUser=c,r.userSignedOut=d;var l=t(1)},function(e,r,t){"use strict";function n(e){return new o.UserManager(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=n;var o=t(14)},function(e,r){e.exports=require("react")},function(e,r,t){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function i(e,r){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!r||"object"!=typeof r&&"function"!=typeof r?e:r}function s(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function, not "+typeof r);e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),r&&(Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r)}Object.defineProperty(r,"__esModule",{value:!0});var u=function(){function e(e,r){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:r,o=arguments[1];switch(o.type){case n.USER_EXPIRED:return t.set("isLoadingUser",!1);case n.SILENT_RENEW_ERROR:return t.set("isLoadingUser",!1);case n.SESSION_TERMINATED:case n.USER_SIGNED_OUT:return e({user:null,isLoadingUser:!1});case n.REDIRECT_SUCCESS:case n.USER_FOUND:return e({user:o.payload,isLoadingUser:!1});case n.LOADING_USER:return t.set("isLoadingUser",!0);default:return t}}}()}catch(e){o=function(){console.error("You must install immutable-js for this to work!")}}r.default=o},function(e,r,t){"use strict";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,r=arguments[1];switch(r.type){case i.USER_EXPIRED:return Object.assign({},o({},e),{user:null,isLoadingUser:!1});case i.SILENT_RENEW_ERROR:return Object.assign({},o({},e),{isLoadingUser:!1});case i.SESSION_TERMINATED:case i.USER_SIGNED_OUT:return Object.assign({},o({},e),{user:null,isLoadingUser:!1});case i.REDIRECT_SUCCESS:case i.USER_FOUND:return Object.assign({},o({},e),{user:r.payload,isLoadingUser:!1});case i.LOADING_USER:return Object.assign({},o({},e),{isLoadingUser:!0});default:return e}}Object.defineProperty(r,"__esModule",{value:!0});var o=Object.assign||function(e){for(var r=1;r0&&void 0!==arguments[0]?arguments[0]:r,o=arguments[1];switch(o.type){case t.USER_EXPIRED:return n.set("isLoadingUser",!1);case t.SILENT_RENEW_ERROR:return n.set("isLoadingUser",!1);case t.SESSION_TERMINATED:case t.USER_SIGNED_OUT:return e({user:null,isLoadingUser:!1});case t.REDIRECT_SUCCESS:case t.USER_FOUND:return e({user:o.payload,isLoadingUser:!1});case t.LOADING_USER:return n.set("isLoadingUser",!0);default:return n}}}()}catch(e){o=function(){console.error("You must install immutable-js for this to work!")}}r.default=o},function(e,r,n){"use strict";function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,r=arguments[1];switch(r.type){case i.USER_EXPIRED:return Object.assign({},o({},e),{user:null,isLoadingUser:!1});case i.SILENT_RENEW_ERROR:return Object.assign({},o({},e),{isLoadingUser:!1});case i.SESSION_TERMINATED:case i.USER_SIGNED_OUT:return Object.assign({},o({},e),{user:null,isLoadingUser:!1});case i.REDIRECT_SUCCESS:case i.USER_FOUND:return Object.assign({},o({},e),{user:r.payload,isLoadingUser:!1});case i.LOADING_USER:return Object.assign({},o({},e),{isLoadingUser:!0});default:return e}}Object.defineProperty(r,"__esModule",{value:!0});var o=Object.assign||function(e){for(var r=1;r=4.6.0", diff --git a/src/CallbackComponent.js b/src/CallbackComponent.js index 8e2f252..dc6599e 100644 --- a/src/CallbackComponent.js +++ b/src/CallbackComponent.js @@ -3,6 +3,9 @@ import { redirectSuccess } from './actions'; class CallbackComponent extends React.Component { static propTypes = { + // the content to render + children: PropTypes.element.isRequired, + // the userManager userManager: PropTypes.object.isRequired, @@ -10,14 +13,11 @@ class CallbackComponent extends React.Component { successCallback: PropTypes.func.isRequired, // a function invoked when the callback fails - errorCallback: PropTypes.func, - - // the route this component is registered in (react-router or similar library) - route: PropTypes.string + errorCallback: PropTypes.func }; componentDidMount() { - this.props.userManager.signinRedirectCallback(this.props.route) + this.props.userManager.signinRedirectCallback() .then((user) => this.onRedirectSuccess(user)) .catch((error) => this.onRedirectError(error)); } @@ -34,16 +34,8 @@ class CallbackComponent extends React.Component { } }; - get defaultContent() { - return
Redirecting...
; - } - render() { - return ( -
- {this.props.children || this.defaultContent} -
- ); + return React.Children.only(this.props.children); } } diff --git a/tests/callbackComponent.test.js b/tests/callbackComponent.test.js index 5c2da12..f127dd7 100644 --- a/tests/callbackComponent.test.js +++ b/tests/callbackComponent.test.js @@ -1,5 +1,4 @@ import './setup'; -import ReactTestUtils from 'react-addons-test-utils'; import expect from 'expect'; import React from 'react'; import CallbackComponent from '../src/CallbackComponent'; @@ -70,15 +69,4 @@ describe('', () => { expect(() => component.onRedirectError(error)).toThrow(/error/); }); - - it('should call the signinSilentCallback with a route when it has been provided', () => { - const route = '/some/route'; - props = { ...props, route }; - component = new CallbackComponent(props); - component.props = Object.assign({}, { ...component.props }, { ...propsMock }); - - component.componentDidMount(); - - expect(signinRedirectCallbackStub.calledWith(route)).toEqual(true); - }); }); diff --git a/tests/setup.js b/tests/setup.js index 7ffc49f..f581a0e 100644 --- a/tests/setup.js +++ b/tests/setup.js @@ -1,7 +1,6 @@ import jsdom from 'jsdom'; import StorageShim from 'node-storage-shim'; - const DEFAULT_HTML = ''; global.document = jsdom.jsdom(DEFAULT_HTML); diff --git a/webpack.config-test.js b/webpack.config-test.js index b7172c2..cfd49d5 100644 --- a/webpack.config-test.js +++ b/webpack.config-test.js @@ -8,7 +8,7 @@ module.exports = { loaders: [ { test: /\.js$/, - loader: 'babel?plugins=rewire', + loader: 'babel-loader?plugins=rewire', exclude: /node_modules/ } ] diff --git a/webpack.config.js b/webpack.config.js index 02d7df8..86da661 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -16,7 +16,7 @@ module.exports = { loaders: [ { test: /\.js$/, - loader: 'babel', + loader: 'babel-loader', exclude: /node_modules/ } ]