99 lines
3.2 KiB
TypeScript
99 lines
3.2 KiB
TypeScript
|
import {
|
||
|
inquiryFailure,
|
||
|
inquiryQueueAdd,
|
||
|
inquiryQueueRemove,
|
||
|
inquiryQueueUpdate,
|
||
|
inquiryReset,
|
||
|
inquirySetEnabled,
|
||
|
inquirySuccess
|
||
|
} from '../actions/inquiry';
|
||
|
import { mockedStore } from '../../../reducers/mockedStore';
|
||
|
import { initialState } from './inquiry';
|
||
|
import { IOmnichannelRoom, OmnichannelSourceType, SubscriptionType } from '../../../definitions';
|
||
|
|
||
|
describe('test inquiry reduce', () => {
|
||
|
const enabledObj = {
|
||
|
enabled: true
|
||
|
};
|
||
|
|
||
|
const queued: IOmnichannelRoom = {
|
||
|
_id: '_id',
|
||
|
rid: 'rid',
|
||
|
name: 'Rocket Chat',
|
||
|
ts: new Date(),
|
||
|
message: 'ola',
|
||
|
status: 'queued',
|
||
|
v: {
|
||
|
_id: 'id-visitor',
|
||
|
username: 'guest-24',
|
||
|
token: '123456789',
|
||
|
status: 'online'
|
||
|
},
|
||
|
t: SubscriptionType.OMNICHANNEL,
|
||
|
queueOrder: '1',
|
||
|
estimatedWaitingTimeQueue: '0',
|
||
|
estimatedServiceTimeAt: new Date(),
|
||
|
source: {
|
||
|
type: OmnichannelSourceType.WIDGET,
|
||
|
_updatedAt: new Date(),
|
||
|
queuedAt: new Date()
|
||
|
}
|
||
|
};
|
||
|
|
||
|
const error = 'Error Test';
|
||
|
|
||
|
it('should return inital state', () => {
|
||
|
const state = mockedStore.getState().inquiry;
|
||
|
expect(state).toEqual(initialState);
|
||
|
});
|
||
|
|
||
|
it('should return correct inquiry state after dispatch inquirySetEnabled action', () => {
|
||
|
mockedStore.dispatch(inquirySetEnabled(enabledObj.enabled));
|
||
|
const { inquiry } = mockedStore.getState();
|
||
|
expect(inquiry).toEqual({ ...initialState, ...enabledObj });
|
||
|
});
|
||
|
|
||
|
it('after inquiry state is modified, should return inquiry state as initial state after dispatch inquiryReset action', () => {
|
||
|
mockedStore.dispatch(inquiryReset());
|
||
|
const { inquiry } = mockedStore.getState();
|
||
|
expect(inquiry).toEqual(initialState);
|
||
|
});
|
||
|
|
||
|
it('should return correct inquiry state after dispatch inquiryQueueAdd action', () => {
|
||
|
mockedStore.dispatch(inquiryQueueAdd(queued));
|
||
|
const { inquiry } = mockedStore.getState();
|
||
|
expect(inquiry).toEqual({ ...initialState, queued: [queued] });
|
||
|
});
|
||
|
|
||
|
it('should update correct inquiry state after dispatch inquiryQueueUpdate action', () => {
|
||
|
const modifiedQueued: IOmnichannelRoom = { ...queued, message: 'inquiryQueueUpdate' };
|
||
|
mockedStore.dispatch(inquiryQueueUpdate(modifiedQueued));
|
||
|
const { inquiry } = mockedStore.getState();
|
||
|
expect(inquiry).toEqual({ ...initialState, queued: [modifiedQueued] });
|
||
|
});
|
||
|
|
||
|
it('should remove correct from queue in inquiry state after dispatch inquiryQueueRemove action', () => {
|
||
|
mockedStore.dispatch(inquiryQueueRemove(queued._id));
|
||
|
const { inquiry } = mockedStore.getState();
|
||
|
expect(inquiry).toEqual(initialState);
|
||
|
});
|
||
|
|
||
|
it('should return correct inquiry state after dispatch inquirySuccess action', () => {
|
||
|
mockedStore.dispatch(inquirySuccess([queued]));
|
||
|
const { inquiry } = mockedStore.getState();
|
||
|
expect(inquiry).toEqual({ ...initialState, queued: [queued] });
|
||
|
});
|
||
|
|
||
|
it('after inquiry state is modified, should return inquiry state as initial state after dispatch inquiryReset action', () => {
|
||
|
mockedStore.dispatch(inquiryReset());
|
||
|
const { inquiry } = mockedStore.getState();
|
||
|
expect(inquiry).toEqual(initialState);
|
||
|
});
|
||
|
|
||
|
it('should return correct inquiry state after dispatch inquiryFailure action', () => {
|
||
|
mockedStore.dispatch(inquiryFailure(error));
|
||
|
const { inquiry } = mockedStore.getState();
|
||
|
expect(inquiry).toEqual({ ...initialState, error });
|
||
|
});
|
||
|
});
|