/* global textsecure */

describe('Protocol', () => {
  describe('Unencrypted PushMessageProto "decrypt"', () => {
    // exclusive
    it('works', done => {
      localStorage.clear();

      const textMessage = new textsecure.protobuf.DataMessage();
      textMessage.body = 'Hi Mom';
      const serverMessage = {
        type: 4, // unencrypted
        source: '+19999999999',
        timestamp: 42,
        message: textMessage.encode(),
      };

      return textsecure.protocol_wrapper
        .handleEncryptedMessage(
          serverMessage.source,
          serverMessage.source_device,
          serverMessage.type,
          serverMessage.message
        )
        .then(message => {
          assert.equal(message.body, textMessage.body);
          assert.equal(
            message.attachments.length,
            textMessage.attachments.length
          );
          assert.equal(textMessage.attachments.length, 0);
        })
        .then(done)
        .catch(done);
    });
  });
});