2019-06-25 07:11:03 -07:00
|
|
|
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
|
|
// See LICENSE.txt for license information.
|
|
|
|
import assert from 'assert';
|
|
|
|
|
|
|
|
import UserActivityMonitor from '../../../src/main/UserActivityMonitor';
|
|
|
|
|
|
|
|
describe('UserActivityMonitor', () => {
|
|
|
|
describe('updateIdleTime', () => {
|
|
|
|
it('should set idle time to provided value', () => {
|
|
|
|
const userActivityMonitor = new UserActivityMonitor();
|
|
|
|
const idleTime = Math.round(Date.now() / 1000);
|
|
|
|
userActivityMonitor.updateIdleTime(idleTime);
|
|
|
|
assert.equal(userActivityMonitor.userIdleTime, idleTime);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('updateUserActivityStatus', () => {
|
|
|
|
let userActivityMonitor;
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
userActivityMonitor = new UserActivityMonitor();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should set user status to active', () => {
|
2019-10-09 06:00:15 -07:00
|
|
|
userActivityMonitor.setActivityState(true);
|
2019-06-25 07:11:03 -07:00
|
|
|
assert.equal(userActivityMonitor.userIsActive, true);
|
|
|
|
});
|
|
|
|
it('should set user status to inactive', () => {
|
2019-10-09 06:00:15 -07:00
|
|
|
userActivityMonitor.setActivityState(false);
|
2019-06-25 07:11:03 -07:00
|
|
|
assert.equal(userActivityMonitor.userIsActive, false);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('sendStatusUpdate', () => {
|
|
|
|
let userActivityMonitor;
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
userActivityMonitor = new UserActivityMonitor();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should emit a non-system triggered status event indicating a user is active', () => {
|
|
|
|
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
|
|
|
|
assert.equal(userIsActive && !isSystemEvent, true);
|
|
|
|
});
|
2019-10-09 06:00:15 -07:00
|
|
|
userActivityMonitor.setActivityState(true, false);
|
2019-06-25 07:11:03 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should emit a non-system triggered status event indicating a user is inactive', () => {
|
|
|
|
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
|
|
|
|
assert.equal(!userIsActive && !isSystemEvent, true);
|
|
|
|
});
|
2019-10-09 06:00:15 -07:00
|
|
|
userActivityMonitor.setActivityState(false, false);
|
2019-06-25 07:11:03 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should emit a system triggered status event indicating a user is active', () => {
|
|
|
|
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
|
|
|
|
assert.equal(userIsActive && isSystemEvent, true);
|
|
|
|
});
|
2019-10-09 06:00:15 -07:00
|
|
|
userActivityMonitor.setActivityState(true, true);
|
2019-06-25 07:11:03 -07:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should emit a system triggered status event indicating a user is inactive', () => {
|
|
|
|
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
|
|
|
|
assert.equal(!userIsActive && isSystemEvent, true);
|
|
|
|
});
|
2019-10-09 06:00:15 -07:00
|
|
|
userActivityMonitor.setActivityState(false, true);
|
2019-06-25 07:11:03 -07:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|