Files
mattermostest/src/main/UserActivityMonitor.test.js
Devin Binnie 39fbdf45c5 [MM-40406] Add more singletons, refactor main.ts into pieces, add tests and some cleanup + tests for additional coverage (#1890)
* Refactor main.ts dependencies into singleton pattern

* Split main.ts into testable pieces, some other refactoring for singleton pattern

* Unit tests for main/app/app

* Unit tests for main/app/config

* Unit tests for main/app/initialize

* Unit tests for main/app/intercom

* Unit tests for main/app/utils

* Add some more tests to get to 70% coverage

* Fix for linux

* Fix for alternate data dir paths

* Fix E2E test
2021-12-09 15:11:55 -05:00

69 lines
2.6 KiB
JavaScript

// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {UserActivityMonitor} from './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);
expect(userActivityMonitor.userIdleTime).toBe(idleTime);
});
});
describe('updateUserActivityStatus', () => {
let userActivityMonitor;
beforeEach(() => {
userActivityMonitor = new UserActivityMonitor();
});
it('should set user status to active', () => {
userActivityMonitor.setActivityState(true);
expect(userActivityMonitor.userIsActive).toBe(true);
});
it('should set user status to inactive', () => {
userActivityMonitor.setActivityState(false);
expect(userActivityMonitor.userIsActive).toBe(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}) => {
expect(userIsActive && !isSystemEvent).toBe(true);
});
userActivityMonitor.setActivityState(true, false);
});
it('should emit a non-system triggered status event indicating a user is inactive', () => {
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
expect(!userIsActive && !isSystemEvent).toBe(true);
});
userActivityMonitor.setActivityState(false, false);
});
it('should emit a system triggered status event indicating a user is active', () => {
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
expect(userIsActive && isSystemEvent).toBe(true);
});
userActivityMonitor.setActivityState(true, true);
});
it('should emit a system triggered status event indicating a user is inactive', () => {
userActivityMonitor.on('status', ({userIsActive, isSystemEvent}) => {
expect(!userIsActive && isSystemEvent).toBe(true);
});
userActivityMonitor.setActivityState(false, true);
});
});
});