b6e8173b24
* 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>
45 lines
1.3 KiB
JavaScript
45 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);
|
|
});
|
|
});
|