tests-init
							parent
							
								
									d0c9f8b773
								
							
						
					
					
						commit
						119ab83e85
					
				@ -0,0 +1,71 @@
 | 
			
		||||
import { expect } from 'chai';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
import { MessageUtils } from '../../../session/utils';
 | 
			
		||||
import { TestUtils } from '../../../test/test-utils';
 | 
			
		||||
import { PendingMessageCache, MessageQueue } from '../../../session/sending/MessageQueue';
 | 
			
		||||
import { generateFakePubkey, generateChatMessage } from '../../test-utils/testUtils';
 | 
			
		||||
 | 
			
		||||
// Equivalent to Data.StorageItem
 | 
			
		||||
interface StorageItem {
 | 
			
		||||
  id: string;
 | 
			
		||||
  value: any;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
describe('Message Queue', () => {
 | 
			
		||||
  // Initialize new stubbed cache
 | 
			
		||||
  let data: StorageItem;
 | 
			
		||||
  let messageQueueStub: MessageQueue;
 | 
			
		||||
 | 
			
		||||
  beforeEach(async () => {
 | 
			
		||||
    // Stub out methods which touch the database
 | 
			
		||||
    const storageID = 'pendingMessages';
 | 
			
		||||
    data = {
 | 
			
		||||
      id: storageID,
 | 
			
		||||
      value: '[]',
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    TestUtils.stubData('getItemById')
 | 
			
		||||
      .withArgs('pendingMessages')
 | 
			
		||||
      .callsFake(async () => {
 | 
			
		||||
        return data;
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
    TestUtils.stubData('createOrUpdateItem').callsFake((item: StorageItem) => {
 | 
			
		||||
      if (item.id === storageID) {
 | 
			
		||||
        data = item;
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    messageQueueStub = new MessageQueue();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  afterEach(() => {
 | 
			
		||||
    TestUtils.restoreStubs();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('can send to many devices', async () => {
 | 
			
		||||
    const devices = Array.from({length: 40}, generateFakePubkey);
 | 
			
		||||
    const message = generateChatMessage();
 | 
			
		||||
 | 
			
		||||
    await messageQueueStub.sendMessageToDevices(devices, message);
 | 
			
		||||
 | 
			
		||||
    // Failure will make an error
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('can send using multidevice', async () => {
 | 
			
		||||
    const device = generateFakePubkey();
 | 
			
		||||
    const message = generateChatMessage();
 | 
			
		||||
 | 
			
		||||
    await messageQueueStub.sendUsingMultiDevice(device, message);
 | 
			
		||||
    
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('', async () => {
 | 
			
		||||
    
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it("won't process invalid message", async () => {
 | 
			
		||||
    // process with message undefined
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
});
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue