SymphonyElectron/spec/activityDetection.spec.ts

84 lines
2.3 KiB
TypeScript
Raw Permalink Normal View History

jest.mock('electron-log');
jest.mock('../src/app/window-handler', () => {
2021-01-29 00:25:40 -06:00
return {
windowHandler: {
setIsAutoReload: jest.fn(() => true),
},
};
});
describe('activity detection', () => {
2021-01-29 00:25:40 -06:00
const originalTimeout: number = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000;
let activityDetectionInstance;
beforeEach(() => {
jest.resetModules();
jest.useFakeTimers();
// I did it for reset module imported between tests
const { activityDetection } = require('../src/app/activity-detection');
activityDetectionInstance = activityDetection;
});
afterAll((done) => {
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
done();
});
it('should call `setWindowAndThreshold` correctly', () => {
// mocking startActivityMonitor
const spy: jest.SpyInstance = jest.spyOn(
activityDetectionInstance,
'setWindowAndThreshold',
);
const idleThresholdMock: number = 1000;
jest
.spyOn(activityDetectionInstance, 'startActivityMonitor')
.mockImplementation(() => jest.fn());
activityDetectionInstance.setWindowAndThreshold({}, idleThresholdMock);
expect(spy).toBeCalledWith({}, 1000);
});
it('should start activity monitor when `setWindowAndThreshold` is called', () => {
const idleThresholdMock: number = 1000;
const spy: jest.SpyInstance = jest
.spyOn(activityDetectionInstance, 'startActivityMonitor')
.mockImplementation(() => jest.fn());
activityDetectionInstance.setWindowAndThreshold({}, idleThresholdMock);
expect(spy).toBeCalled();
});
it('should call `activity` when `startActivityMonitor` is called', () => {
const spy: jest.SpyInstance = jest.spyOn(
activityDetectionInstance,
'activity',
);
activityDetectionInstance.startActivityMonitor();
jest.runOnlyPendingTimers();
expect(spy).toBeCalled();
});
it('should call `sendActivity` when period was greater than idleTime', () => {
// period is this.idleThreshold = 60 * 60 * 1000;
const mockIdleTime: number = 50;
const spy: jest.SpyInstance = jest.spyOn(
activityDetectionInstance,
'sendActivity',
);
const mockIdleTimeinMillis: number = mockIdleTime * 1000;
activityDetectionInstance.activity(mockIdleTime);
expect(spy).toBeCalledWith(mockIdleTimeinMillis);
});
});