mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	* feat: HMAC verification for web widget. Let you verify the authenticated contact via HMAC on the web widget to prevent data tampering. * Add docs for identity-validation Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { getUserCookieName, getUserString, hasUserKeys } from '../../packs/sdk';
 | 
						|
 | 
						|
describe('#getUserCookieName', () => {
 | 
						|
  it('returns correct cookie name', () => {
 | 
						|
    global.$chatwoot = { websiteToken: '123456' };
 | 
						|
    expect(getUserCookieName()).toBe('cw_user_123456');
 | 
						|
  });
 | 
						|
});
 | 
						|
 | 
						|
describe('#getUserString', () => {
 | 
						|
  it('returns correct user string', () => {
 | 
						|
    expect(
 | 
						|
      getUserString({
 | 
						|
        user: {
 | 
						|
          name: 'Pranav',
 | 
						|
          email: 'pranav@example.com',
 | 
						|
          avatar_url: 'https://images.chatwoot.com/placeholder',
 | 
						|
          identifier_hash: '12345',
 | 
						|
        },
 | 
						|
        identifier: '12345',
 | 
						|
      })
 | 
						|
    ).toBe(
 | 
						|
      'avatar_urlhttps://images.chatwoot.com/placeholderemailpranav@example.comnamePranavidentifier_hash12345identifier12345'
 | 
						|
    );
 | 
						|
 | 
						|
    expect(
 | 
						|
      getUserString({
 | 
						|
        user: {
 | 
						|
          email: 'pranav@example.com',
 | 
						|
          avatar_url: 'https://images.chatwoot.com/placeholder',
 | 
						|
        },
 | 
						|
      })
 | 
						|
    ).toBe(
 | 
						|
      'avatar_urlhttps://images.chatwoot.com/placeholderemailpranav@example.comnameidentifier_hashidentifier'
 | 
						|
    );
 | 
						|
  });
 | 
						|
});
 | 
						|
 | 
						|
describe('#hasUserKeys', () => {
 | 
						|
  it('checks whether the allowed list of keys are present', () => {
 | 
						|
    expect(hasUserKeys({})).toBe(false);
 | 
						|
    expect(hasUserKeys({ randomKey: 'randomValue' })).toBe(false);
 | 
						|
    expect(hasUserKeys({ avatar_url: 'randomValue' })).toBe(true);
 | 
						|
  });
 | 
						|
});
 |