You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			134 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			134 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			TypeScript
		
	
| import { expect } from 'chai';
 | |
| import { beforeEach } from 'mocha';
 | |
| 
 | |
| import {
 | |
|   DeviceLinkGrantMessage,
 | |
|   DeviceLinkRequestMessage,
 | |
| } from '../../../session/messages/outgoing';
 | |
| import { SignalService } from '../../../protobuf';
 | |
| import { LokiProfile } from '../../../types/Message';
 | |
| 
 | |
| describe('DeviceLinkMessage', () => {
 | |
|   let linkRequestMessage: DeviceLinkRequestMessage;
 | |
|   let linkGrantMessage: DeviceLinkGrantMessage;
 | |
|   let lokiProfile: LokiProfile;
 | |
| 
 | |
|   beforeEach(() => {
 | |
|     linkRequestMessage = new DeviceLinkRequestMessage({
 | |
|       timestamp: Date.now(),
 | |
|       primaryDevicePubKey: '111111',
 | |
|       secondaryDevicePubKey: '222222',
 | |
|       requestSignature: new Uint8Array([1, 2, 3, 4, 5, 6]),
 | |
|     });
 | |
| 
 | |
|     lokiProfile = {
 | |
|       displayName: 'displayName',
 | |
|       avatarPointer: 'avatarPointer',
 | |
|       profileKey: new Uint8Array([1, 2, 3, 4]),
 | |
|     };
 | |
| 
 | |
|     linkGrantMessage = new DeviceLinkGrantMessage({
 | |
|       timestamp: Date.now(),
 | |
|       primaryDevicePubKey: '111111',
 | |
|       secondaryDevicePubKey: '222222',
 | |
|       requestSignature: new Uint8Array([1, 2, 3, 4, 5, 6]),
 | |
|       grantSignature: new Uint8Array([6, 5, 4, 3, 2, 1]),
 | |
|       lokiProfile,
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('content of a linkRequestMessage ', () => {
 | |
|     let decoded: any;
 | |
|     before(() => {
 | |
|       const plainText = linkRequestMessage.plainTextBuffer();
 | |
|       decoded = SignalService.Content.decode(plainText);
 | |
|     });
 | |
| 
 | |
|     it('has a pairingAuthorisation.primaryDevicePubKey', () => {
 | |
|       expect(decoded.pairingAuthorisation).to.have.property(
 | |
|         'primaryDevicePubKey',
 | |
|         '111111'
 | |
|       );
 | |
|     });
 | |
|     it('has a pairingAuthorisation.secondaryDevicePubKey', () => {
 | |
|       expect(decoded.pairingAuthorisation).to.have.property(
 | |
|         'secondaryDevicePubKey',
 | |
|         '222222'
 | |
|       );
 | |
|     });
 | |
|     it('has a pairingAuthorisation.requestSignature', () => {
 | |
|       expect(decoded.pairingAuthorisation)
 | |
|         .to.have.property('requestSignature')
 | |
|         .to.deep.equal(new Uint8Array([1, 2, 3, 4, 5, 6]));
 | |
|     });
 | |
|     it('has no pairingAuthorisation.grantSignature', () => {
 | |
|       expect(decoded.pairingAuthorisation)
 | |
|         .to.have.property('grantSignature')
 | |
|         .to.have.lengthOf(0);
 | |
|     });
 | |
|     it('has no lokiProfile', () => {
 | |
|       expect(decoded).to.not.have.property('lokiProfile');
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('content of a linkGrantMessage ', () => {
 | |
|     let decoded: any;
 | |
|     before(() => {
 | |
|       const plainText = linkGrantMessage.plainTextBuffer();
 | |
|       decoded = SignalService.Content.decode(plainText);
 | |
|     });
 | |
| 
 | |
|     it('has a pairingAuthorisation.primaryDevicePubKey', () => {
 | |
|       expect(decoded.pairingAuthorisation).to.have.property(
 | |
|         'primaryDevicePubKey',
 | |
|         '111111'
 | |
|       );
 | |
|     });
 | |
|     it('has a pairingAuthorisation.secondaryDevicePubKey', () => {
 | |
|       expect(decoded.pairingAuthorisation).to.have.property(
 | |
|         'secondaryDevicePubKey',
 | |
|         '222222'
 | |
|       );
 | |
|     });
 | |
|     it('has a pairingAuthorisation.requestSignature', () => {
 | |
|       expect(decoded.pairingAuthorisation)
 | |
|         .to.have.property('requestSignature')
 | |
|         .to.deep.equal(new Uint8Array([1, 2, 3, 4, 5, 6]));
 | |
|     });
 | |
|     it('has a pairingAuthorisation.grantSignature', () => {
 | |
|       expect(decoded.pairingAuthorisation)
 | |
|         .to.have.property('grantSignature')
 | |
|         .to.deep.equal(new Uint8Array([6, 5, 4, 3, 2, 1]));
 | |
|     });
 | |
|     it('has a lokiProfile', () => {
 | |
|       expect(decoded.dataMessage)
 | |
|         .to.have.property('profileKey')
 | |
|         .to.be.deep.equal(lokiProfile.profileKey);
 | |
|       expect(decoded.dataMessage)
 | |
|         .to.have.property('profile')
 | |
|         .to.have.property('displayName')
 | |
|         .to.be.deep.equal('displayName');
 | |
|       expect(decoded.dataMessage)
 | |
|         .to.have.property('profile')
 | |
|         .to.have.property('avatar')
 | |
|         .to.be.deep.equal('avatarPointer');
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   it('ttl of 2 minutes', () => {
 | |
|     expect(linkRequestMessage.ttl()).to.equal(2 * 60 * 1000);
 | |
|     expect(linkGrantMessage.ttl()).to.equal(2 * 60 * 1000);
 | |
|   });
 | |
| 
 | |
|   it('has an identifier', () => {
 | |
|     expect(linkRequestMessage.identifier).to.not.equal(
 | |
|       null,
 | |
|       'identifier cannot be null'
 | |
|     );
 | |
|     expect(linkRequestMessage.identifier).to.not.equal(
 | |
|       undefined,
 | |
|       'identifier cannot be undefined'
 | |
|     );
 | |
|   });
 | |
| });
 |