UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

103 lines (79 loc) 3.06 kB
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import {GeneralTypes} from 'action_types'; import reducer from './websocket'; describe('websocket', () => { describe('lastConnectAt', () => { test('should update lastConnectAt when first connecting', () => { let state = reducer(undefined, {}); state = reducer(state, { type: GeneralTypes.WEBSOCKET_SUCCESS, timestamp: 1000, }); expect(state.connected).toBe(true); expect(state.lastConnectAt).toBe(1000); }); test('should not update lastConnectAt when already connected', () => { let state = reducer(undefined, {}); state = reducer(state, { type: GeneralTypes.WEBSOCKET_SUCCESS, timestamp: 1000, }); state = reducer(state, { type: GeneralTypes.WEBSOCKET_SUCCESS, timestamp: 2000, }); expect(state.connected).toBe(true); expect(state.lastConnectAt).toBe(1000); }); test('should update when reconnecting', () => { let state = reducer(undefined, {}); state = reducer(state, { type: GeneralTypes.WEBSOCKET_SUCCESS, timestamp: 1000, }); state = reducer(state, { type: GeneralTypes.WEBSOCKET_FAILURE, timestamp: 2000, }); state = reducer(state, { type: GeneralTypes.WEBSOCKET_SUCCESS, timestamp: 3000, }); expect(state.connected).toBe(true); expect(state.lastConnectAt).toBe(3000); }); }); describe('lastDisconnectAt', () => { test('should update lastDisconnectAt when disconnected', () => { let state = reducer(undefined, {}); state = reducer(state, { type: GeneralTypes.WEBSOCKET_SUCCESS, timestamp: 1000, }); state = reducer(state, { type: GeneralTypes.WEBSOCKET_FAILURE, timestamp: 2000, }); expect(state.connected).toBe(false); expect(state.lastDisconnectAt).toBe(2000); }); test('should not update lastDisconnectAt when failing to reconnect', () => { let state = reducer(undefined, {}); state = reducer(state, { type: GeneralTypes.WEBSOCKET_SUCCESS, timestamp: 1000, }); state = reducer(state, { type: GeneralTypes.WEBSOCKET_FAILURE, timestamp: 2000, }); state = reducer(state, { type: GeneralTypes.WEBSOCKET_FAILURE, timestamp: 3000, }); expect(state.connected).toBe(false); expect(state.lastDisconnectAt).toBe(2000); }); }); });