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.
		
		
		
		
		
			
		
			
				
	
	
		
			152 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			152 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			TypeScript
		
	
| import chai, { expect } from 'chai';
 | |
| 
 | |
| import chaiAsPromised from 'chai-as-promised';
 | |
| import {
 | |
|   getCompleteUrlFromRoom,
 | |
|   getOpenGroupV2ConversationId,
 | |
|   prefixify,
 | |
| } from '../../../../session/apis/open_group_api/utils/OpenGroupUtils';
 | |
| 
 | |
| chai.use(chaiAsPromised as any);
 | |
| 
 | |
| describe('OpenGroupUtils', () => {
 | |
|   describe('prefixify', () => {
 | |
|     it('should just return if http:// is as prefix', () => {
 | |
|       expect(prefixify('http://whatever.com')).to.be.equal('http://whatever.com');
 | |
|     });
 | |
|     it('should just return if https:// is as prefix', () => {
 | |
|       expect(prefixify('https://whatever.com')).to.be.equal('https://whatever.com');
 | |
|     });
 | |
| 
 | |
|     it('should just return if http:// is as prefix ', () => {
 | |
|       expect(prefixify('http://whatever.com')).to.be.equal('http://whatever.com');
 | |
|     });
 | |
|     it('should just return if https:// is as prefix', () => {
 | |
|       expect(prefixify('https://whatever.com')).to.be.equal('https://whatever.com');
 | |
|     });
 | |
| 
 | |
|     it('should prefix with http if ssl is false and no prefix', () => {
 | |
|       expect(prefixify('whatever.com')).to.be.equal('http://whatever.com');
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('getOpenGroupV2ConversationId', () => {
 | |
|     describe('throws if roomId is not valid', () => {
 | |
|       it('throws if roomId is too long 64 ', () => {
 | |
|         expect(() => {
 | |
|           getOpenGroupV2ConversationId(
 | |
|             'http://whatever.com',
 | |
|             '012345678901234567890#1234567!89012345678901234567890123456789fg01234'
 | |
|           );
 | |
|         }).to.throw('getOpenGroupV2ConversationId: Invalid roomId');
 | |
|       });
 | |
| 
 | |
|       it('throws if roomId is too short ', () => {
 | |
|         expect(() => {
 | |
|           getOpenGroupV2ConversationId('http://whatever.com', '');
 | |
|         }).to.throw('getOpenGroupV2ConversationId: Invalid roomId');
 | |
|       });
 | |
|       it('throws if roomId is has forbidden chars ', () => {
 | |
|         expect(() => {
 | |
|           getOpenGroupV2ConversationId('http://whatever.com', '1&%^%');
 | |
|         }).to.throw('getOpenGroupV2ConversationId: Invalid roomId');
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     it('doesnt throw if roomId and serverUrl are valid ', () => {
 | |
|       expect(() => {
 | |
|         getOpenGroupV2ConversationId('http://127.0.0.1/', 'whatever1234');
 | |
|       }).to.not.throw();
 | |
|     });
 | |
| 
 | |
|     it('doesnt throw if roomId and serverUrl are valid with port', () => {
 | |
|       expect(() => {
 | |
|         getOpenGroupV2ConversationId('http://127.0.0.1:22/', 'whatever1234');
 | |
|       }).to.not.throw();
 | |
|     });
 | |
| 
 | |
|     it('doesnt throw if roomId and serverUrl are valid with port', () => {
 | |
|       expect(() => {
 | |
|         getOpenGroupV2ConversationId('https://opengroup.com/', 'whatever1234');
 | |
|       }).to.not.throw();
 | |
|     });
 | |
| 
 | |
|     it('throw if serverUrl is no url', () => {
 | |
|       expect(() => {
 | |
|         getOpenGroupV2ConversationId('opengroup', 'whatever1234');
 | |
|       }).to.throw();
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('getCompleteUrlFromRoom', () => {
 | |
|     it('doesnt throw if roomId and serverUrl are valid with port', () => {
 | |
|       expect(
 | |
|         getCompleteUrlFromRoom({
 | |
|           roomId: 'whatever1234',
 | |
|           serverPublicKey: '05123456789',
 | |
|           serverUrl: 'https://example.org',
 | |
|         })
 | |
|       ).to.be.eq('https://example.org/whatever1234?public_key=05123456789');
 | |
|     });
 | |
| 
 | |
|     it('throws if pubkey is empty', () => {
 | |
|       expect(() =>
 | |
|         getCompleteUrlFromRoom({
 | |
|           roomId: 'whatever1234',
 | |
|           serverPublicKey: '',
 | |
|           serverUrl: 'https://example.org',
 | |
|         })
 | |
|       ).to.throw('getCompleteUrlFromRoom needs serverPublicKey, roomid and serverUrl to be set');
 | |
|     });
 | |
| 
 | |
|     it('throws if serverUrl is empty', () => {
 | |
|       expect(() =>
 | |
|         getCompleteUrlFromRoom({
 | |
|           roomId: 'whatever1234',
 | |
|           serverPublicKey: '05123456789',
 | |
|           serverUrl: '',
 | |
|         })
 | |
|       ).to.throw('getCompleteUrlFromRoom needs serverPublicKey, roomid and serverUrl to be set');
 | |
|     });
 | |
| 
 | |
|     it('throws if roomId is empty', () => {
 | |
|       expect(() =>
 | |
|         getCompleteUrlFromRoom({
 | |
|           roomId: '',
 | |
|           serverPublicKey: '05123456789',
 | |
|           serverUrl: 'https://example.org',
 | |
|         })
 | |
|       ).to.throw('getCompleteUrlFromRoom needs serverPublicKey, roomid and serverUrl to be set');
 | |
|     });
 | |
|     it('throws if pubkey is null', () => {
 | |
|       expect(() =>
 | |
|         getCompleteUrlFromRoom({
 | |
|           roomId: 'whatever1234',
 | |
|           serverPublicKey: null as any,
 | |
|           serverUrl: 'https://example.org',
 | |
|         })
 | |
|       ).to.throw('getCompleteUrlFromRoom needs serverPublicKey, roomid and serverUrl to be set');
 | |
|     });
 | |
| 
 | |
|     it('throws if serverUrl is null', () => {
 | |
|       expect(() =>
 | |
|         getCompleteUrlFromRoom({
 | |
|           roomId: 'whatever1234',
 | |
|           serverPublicKey: '05123456789',
 | |
|           serverUrl: null as any,
 | |
|         })
 | |
|       ).to.throw('getCompleteUrlFromRoom needs serverPublicKey, roomid and serverUrl to be set');
 | |
|     });
 | |
| 
 | |
|     it('throws if roomId is null', () => {
 | |
|       expect(() =>
 | |
|         getCompleteUrlFromRoom({
 | |
|           roomId: null as any,
 | |
|           serverPublicKey: '05123456789',
 | |
|           serverUrl: 'https://example.org',
 | |
|         })
 | |
|       ).to.throw('getCompleteUrlFromRoom needs serverPublicKey, roomid and serverUrl to be set');
 | |
|     });
 | |
|   });
 | |
| });
 |