16679: Adds tests for AutoLogout component.
[arvados-workbench2.git] / src / views-components / auto-logout / auto-logout.tsx
index 52a1950ae087b885b8201ed56268592e190c7483..f1464ce18497f3476017ec2075f430afb3bf339d 100644 (file)
@@ -39,34 +39,35 @@ const mapDispatchToProps = (dispatch: Dispatch): AutoLogoutActionProps => ({
     doCloseWarn: () => dispatch(snackbarActions.CLOSE_SNACKBAR()),
 });
 
-type AutoLogoutProps = AutoLogoutDataProps & AutoLogoutActionProps;
+export type AutoLogoutProps = AutoLogoutDataProps & AutoLogoutActionProps;
 
-export const AutoLogout = connect(mapStateToProps, mapDispatchToProps)(
-    (props: AutoLogoutProps) => {
-        let logoutTimer: NodeJS.Timer;
-        const lastWarningDuration = min([props.lastWarningDuration, props.sessionIdleTimeout])! * 1000 ;
+export const AutoLogoutComponent = (props: AutoLogoutProps) => {
+    let logoutTimer: NodeJS.Timer;
+    const lastWarningDuration = min([props.lastWarningDuration, props.sessionIdleTimeout])! * 1000 ;
 
-        const handleOnIdle = () => {
-            logoutTimer = setTimeout(
-                () => props.doLogout(), lastWarningDuration);
-            props.doWarn(
-                "Your session is about to be closed due to inactivity",
-                lastWarningDuration);
-        };
-
-        const handleOnActive = () => {
-            clearTimeout(logoutTimer);
-            props.doCloseWarn();
-        };
+    const handleOnIdle = () => {
+        logoutTimer = setTimeout(
+            () => props.doLogout(), lastWarningDuration);
+        props.doWarn(
+            "Your session is about to be closed due to inactivity",
+            lastWarningDuration);
+    };
 
-        useIdleTimer({
-            timeout: (props.lastWarningDuration < props.sessionIdleTimeout)
-                ? 1000 * (props.sessionIdleTimeout - props.lastWarningDuration)
-                : 1,
-            onIdle: handleOnIdle,
-            onActive: handleOnActive,
-            debounce: 500
-        });
+    const handleOnActive = () => {
+        clearTimeout(logoutTimer);
+        props.doCloseWarn();
+    };
 
-        return <span />;
+    useIdleTimer({
+        timeout: (props.lastWarningDuration < props.sessionIdleTimeout)
+            ? 1000 * (props.sessionIdleTimeout - props.lastWarningDuration)
+            : 1,
+        onIdle: handleOnIdle,
+        onActive: handleOnActive,
+        debounce: 500
     });
+
+    return <span />;
+};
+
+export const AutoLogout = connect(mapStateToProps, mapDispatchToProps)(AutoLogoutComponent);