hasSession checl

pull/1177/head
Vincent 5 years ago
parent 3fa9eed90b
commit 2edda7c9e5

@ -6,6 +6,7 @@ import { MessageQueue } from '../../../session/sending/MessageQueue';
import {
ChatMessage,
ClosedGroupMessage,
ContentMessage,
OpenGroupMessage,
} from '../../../session/messages/outgoing';
import { PubKey, RawMessage } from '../../../session/types';
@ -14,7 +15,10 @@ import { MessageSender } from '../../../session/sending';
import { toRawMessage } from '../../../session/utils/Messages';
import { SessionProtocol } from '../../../session/protocols';
import { PendingMessageCache } from '../../../session/sending/PendingMessageCache';
import { generateChatMessage, generateFakePubkey } from '../../test-utils/testUtils';
import {
generateChatMessage,
generateFakePubkey,
} from '../../test-utils/testUtils';
// Equivalent to Data.StorageItem
interface StorageItem {
@ -34,9 +38,14 @@ describe('MessageQueue', () => {
let messageQueueStub: MessageQueue;
// Spies
let sendToOpenGroupSpy: sinon.SinonSpy;
let sendMessageToDevicesSpy: sinon.SinonSpy;
let sendSyncMessageSpy: sinon.SinonSpy;
let sendMessageToDevicesSpy: sinon.SinonSpy<
[Array<PubKey>, ContentMessage],
Promise<Array<void>>
>;
let sendSyncMessageSpy: sinon.SinonSpy<
[ContentMessage, Array<PubKey>],
Promise<Array<void>>
>;
// Message Sender Stubs
let sendStub: sinon.SinonStub<[RawMessage, (number | undefined)?]>;
@ -45,7 +54,7 @@ describe('MessageQueue', () => {
let groupMembersStub: sinon.SinonStub;
// Session Protocol Stubs
let hasSessionStub: sinon.SinonStub<[PubKey]>;
let sendSessionRequestIfNeededStub: sinon.SinonStub;
let sendSessionRequestIfNeededStub: sinon.SinonStub<[PubKey], Promise<void>>;
// Helper function returns a promise that resolves after all other promise mocks,
// even if they are chained like Promise.resolve().then(...)
@ -126,7 +135,6 @@ describe('MessageQueue', () => {
);
// Spies
sendToOpenGroupSpy = sandbox.spy(MessageSender, 'sendToOpenGroup');
sendSyncMessageSpy = sandbox.spy(MessageQueue.prototype, 'sendSyncMessage');
sendMessageToDevicesSpy = sandbox.spy(
MessageQueue.prototype,
@ -173,13 +181,16 @@ describe('MessageQueue', () => {
expect(sendSessionRequestIfNeededStub.callCount).to.equal(1);
});
it('will send message is session exists', () => {
//
//
//
//
//
//
it('will send message if session exists', async () => {
const device = generateFakePubkey();
const hasSession = hasSessionStub(device);
const promise = messageQueueStub.processPending(device);
expect(promise).to.be.fulfilled;
await tick();
expect(hasSession).to.equal(true, 'session does not exist');
expect(sendSessionRequestIfNeededStub.callCount).to.equal(0);
});
});
@ -335,7 +346,7 @@ describe('MessageQueue', () => {
// These should not be called; early exit
expect(sendMessageToDevicesSpy.callCount).to.equal(0);
expect(sendToOpenGroupSpy.callCount).to.equal(0);
expect(sendToOpenGroupStub.callCount).to.equal(0);
});
it('can send to open group', async () => {
@ -346,24 +357,31 @@ describe('MessageQueue', () => {
});
});
describe('MessageQueue events', () => {
console.log('[vince] messageQueueStub.events:', messageQueueStub);
console.log('[vince] messageQueueStub.events:', messageQueueStub);
// console.log('[vince] messageQueueStub.events:', messageQueueStub.events);
describe('events', () => {
it('can send events on message sending success', async () => {
const successSpy = sandbox.spy();
messageQueueStub.events.on('success', successSpy);
// messageQueueStub.events.on('success', successSpy);
// const device = generateFakePubkey();
// const promise = messageQueueStub.processPending(device);
const device = generateFakePubkey();
const promise = messageQueueStub.processPending(device);
expect(promise).to.be.fulfilled;
// expect(promise).to.be.fulfilled;
await tick();
expect(successSpy.callCount).to.equal(1);
});
console.log('[vince] successSpy.callCount:', successSpy.callCount);
it('can send events on message sending failure', async () => {
sendStub.throws(new Error('Failed to send message.'));
const failureSpy = sandbox.spy();
messageQueueStub.events.on('fail', failureSpy);
const device = generateFakePubkey();
const promise = messageQueueStub.processPending(device);
expect(promise).to.be.fulfilled;
await tick();
expect(failureSpy.callCount).to.equal(1);
});
});
});

Loading…
Cancel
Save