[MM-19266] User activity monitor updates (#1061)

* user activity monitor updates

- re-work of the mechanism for determining user activity status and triggering updates that are passed to the server via the webapp
- removing system events (login/out screensaveer on/of etc.) to be re-considered for a future release

* add missing descriptions

* review tweaks

* update tests
This commit is contained in:
Dean Whillier
2019-10-09 09:00:15 -04:00
committed by GitHub
parent 695d246a67
commit e1f64f0ba0
2 changed files with 35 additions and 80 deletions

View File

@@ -22,35 +22,15 @@ describe('UserActivityMonitor', () => {
});
it('should set user status to active', () => {
userActivityMonitor.updateUserActivityStatus(true);
userActivityMonitor.setActivityState(true);
assert.equal(userActivityMonitor.userIsActive, true);
});
it('should set user status to inactive', () => {
userActivityMonitor.updateUserActivityStatus(false);
userActivityMonitor.setActivityState(false);
assert.equal(userActivityMonitor.userIsActive, false);
});
});
describe('handleSystemGoingAway', () => {
it('should set user status to inactive and forceInactive to true', () => {
const userActivityMonitor = new UserActivityMonitor();
userActivityMonitor.isActive = true;
userActivityMonitor.forceInactive = false;
userActivityMonitor.handleSystemGoingAway();
assert.equal(!userActivityMonitor.userIsActive && userActivityMonitor.forceInactive, true);
});
});
describe('handleSystemComingBack', () => {
it('should set user status to active and forceInactive to false', () => {
const userActivityMonitor = new UserActivityMonitor();
userActivityMonitor.isActive = false;
userActivityMonitor.forceInactive = true;
userActivityMonitor.handleSystemComingBack();
assert.equal(userActivityMonitor.userIsActive && !userActivityMonitor.forceInactive, true);
});
});
describe('sendStatusUpdate', () => {
let userActivityMonitor;
@@ -62,28 +42,28 @@ describe('UserActivityMonitor', () => {
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
assert.equal(userIsActive && !isSystemEvent, true);
});
userActivityMonitor.updateUserActivityStatus(true, false);
userActivityMonitor.setActivityState(true, false);
});
it('should emit a non-system triggered status event indicating a user is inactive', () => {
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
assert.equal(!userIsActive && !isSystemEvent, true);
});
userActivityMonitor.updateUserActivityStatus(false, false);
userActivityMonitor.setActivityState(false, false);
});
it('should emit a system triggered status event indicating a user is active', () => {
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
assert.equal(userIsActive && isSystemEvent, true);
});
userActivityMonitor.updateUserActivityStatus(true, true);
userActivityMonitor.setActivityState(true, true);
});
it('should emit a system triggered status event indicating a user is inactive', () => {
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
assert.equal(!userIsActive && isSystemEvent, true);
});
userActivityMonitor.updateUserActivityStatus(false, true);
userActivityMonitor.setActivityState(false, true);
});
});
});