improve sendToGroup

pull/1177/head
Vincent 5 years ago
parent 2edda7c9e5
commit 211d4e1551

@ -2,5 +2,6 @@
import * as MessageSender from './MessageSender'; import * as MessageSender from './MessageSender';
export { MessageSender }; export { MessageSender };
export * from './PendingMessageCache';
export * from './MessageQueue'; export * from './MessageQueue';
export * from './MessageQueueInterface'; export * from './MessageQueueInterface';

@ -1,3 +1,4 @@
export * from './EncryptionType'; export * from './EncryptionType';
export * from './RawMessage'; export * from './RawMessage';
export * from './PubKey'; export * from './PubKey';
export * from './OpenGroup';

@ -5,7 +5,7 @@ import {
OpenGroupMessage, OpenGroupMessage,
} from '../../../session/messages/outgoing'; } from '../../../session/messages/outgoing';
import * as MIME from '../../../../ts/types/MIME'; import * as MIME from '../../../../ts/types/MIME';
import { OpenGroup } from '../../../session/types/OpenGroup'; import { OpenGroup } from '../../../session/types';
describe('OpenGroupMessage', () => { describe('OpenGroupMessage', () => {
const group = new OpenGroup({ const group = new OpenGroup({

@ -1,6 +1,6 @@
import { expect } from 'chai'; import { expect } from 'chai';
import Sinon, * as sinon from 'sinon'; import * as sinon from 'sinon';
import { GroupUtils, SyncMessageUtils } from '../../../session/utils'; import { GroupUtils } from '../../../session/utils';
import { Stubs, TestUtils } from '../../../test/test-utils'; import { Stubs, TestUtils } from '../../../test/test-utils';
import { MessageQueue } from '../../../session/sending/MessageQueue'; import { MessageQueue } from '../../../session/sending/MessageQueue';
import { import {
@ -11,14 +11,9 @@ import {
} from '../../../session/messages/outgoing'; } from '../../../session/messages/outgoing';
import { PubKey, RawMessage } from '../../../session/types'; import { PubKey, RawMessage } from '../../../session/types';
import { UserUtil } from '../../../util'; import { UserUtil } from '../../../util';
import { MessageSender } from '../../../session/sending'; import { MessageSender, PendingMessageCache } from '../../../session/sending';
import { toRawMessage } from '../../../session/utils/Messages'; import { toRawMessage } from '../../../session/utils/Messages';
import { SessionProtocol } from '../../../session/protocols'; import { SessionProtocol } from '../../../session/protocols';
import { PendingMessageCache } from '../../../session/sending/PendingMessageCache';
import {
generateChatMessage,
generateFakePubkey,
} from '../../test-utils/testUtils';
// Equivalent to Data.StorageItem // Equivalent to Data.StorageItem
interface StorageItem { interface StorageItem {
@ -46,6 +41,10 @@ describe('MessageQueue', () => {
[ContentMessage, Array<PubKey>], [ContentMessage, Array<PubKey>],
Promise<Array<void>> Promise<Array<void>>
>; >;
let sendToGroupSpy: sinon.SinonSpy<
[ContentMessage | OpenGroupMessage],
Promise<boolean>
>;
// Message Sender Stubs // Message Sender Stubs
let sendStub: sinon.SinonStub<[RawMessage, (number | undefined)?]>; let sendStub: sinon.SinonStub<[RawMessage, (number | undefined)?]>;
@ -140,6 +139,7 @@ describe('MessageQueue', () => {
MessageQueue.prototype, MessageQueue.prototype,
'sendMessageToDevices' 'sendMessageToDevices'
); );
sendToGroupSpy = sandbox.spy(MessageQueue.prototype, 'sendToGroup');
// Init Queue // Init Queue
messageQueueStub = new MessageQueue(); messageQueueStub = new MessageQueue();
@ -182,8 +182,8 @@ describe('MessageQueue', () => {
}); });
it('will send message if session exists', async () => { it('will send message if session exists', async () => {
const device = generateFakePubkey(); const device = TestUtils.generateFakePubkey();
const hasSession = hasSessionStub(device); const hasSession = await hasSessionStub(device);
const promise = messageQueueStub.processPending(device); const promise = messageQueueStub.processPending(device);
expect(promise).to.be.fulfilled; expect(promise).to.be.fulfilled;
@ -312,7 +312,13 @@ describe('MessageQueue', () => {
const message = TestUtils.generateClosedGroupMessage('invalid-group-id'); const message = TestUtils.generateClosedGroupMessage('invalid-group-id');
const success = await messageQueueStub.sendToGroup(message); const success = await messageQueueStub.sendToGroup(message);
expect(message instanceof ClosedGroupMessage).to.equal( // Ensure message parameter passed into sendToGroup is as expected
await tick();
expect(sendToGroupSpy.callCount).to.equal(1);
expect(sendToGroupSpy.lastCall.args).to.have.length(1);
const argsMessage = sendToGroupSpy.lastCall.args[0];
expect(argsMessage instanceof ClosedGroupMessage).to.equal(
true, true,
'message passed into sendToGroup was not a ClosedGroupMessage' 'message passed into sendToGroup was not a ClosedGroupMessage'
); );
@ -362,7 +368,7 @@ describe('MessageQueue', () => {
const successSpy = sandbox.spy(); const successSpy = sandbox.spy();
messageQueueStub.events.on('success', successSpy); messageQueueStub.events.on('success', successSpy);
const device = generateFakePubkey(); const device = TestUtils.generateFakePubkey();
const promise = messageQueueStub.processPending(device); const promise = messageQueueStub.processPending(device);
expect(promise).to.be.fulfilled; expect(promise).to.be.fulfilled;
@ -376,7 +382,7 @@ describe('MessageQueue', () => {
const failureSpy = sandbox.spy(); const failureSpy = sandbox.spy();
messageQueueStub.events.on('fail', failureSpy); messageQueueStub.events.on('fail', failureSpy);
const device = generateFakePubkey(); const device = TestUtils.generateFakePubkey();
const promise = messageQueueStub.processPending(device); const promise = messageQueueStub.processPending(device);
expect(promise).to.be.fulfilled; expect(promise).to.be.fulfilled;

Loading…
Cancel
Save