fix: Adds domain option to user cookies set by SDK [CW-352] (#7070)
* fix: Adds domain option to user cookies set by SDK * Adds domain to init event from chatwootSettings variable * Testing multiple domains on heroku * Updates with sdk from staging * Removes sdk init code * Testing why cookie is not getting set * Cleans up testing code * Refactors code to fix codeclimate issues * Update app/javascript/sdk/cookieHelpers.js Co-authored-by: Shivam Mishra <scm.mymail@gmail.com> * Adds test cases for setCookieWithDomain --------- Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com> Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
This commit is contained in:
committed by
GitHub
parent
d25e7fd54e
commit
1017903ee1
@@ -1,7 +1,9 @@
|
||||
import Cookies from 'js-cookie';
|
||||
import {
|
||||
getUserCookieName,
|
||||
getUserString,
|
||||
hasUserKeys,
|
||||
setCookieWithDomain,
|
||||
} from '../cookieHelpers';
|
||||
|
||||
describe('#getUserCookieName', () => {
|
||||
@@ -47,3 +49,78 @@ describe('#hasUserKeys', () => {
|
||||
expect(hasUserKeys({ avatar_url: 'randomValue' })).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
// Mock the 'set' method of the 'Cookies' object
|
||||
jest.mock('js-cookie', () => ({
|
||||
set: jest.fn(),
|
||||
}));
|
||||
|
||||
describe('setCookieWithDomain', () => {
|
||||
afterEach(() => {
|
||||
// Clear mock calls after each test
|
||||
Cookies.set.mockClear();
|
||||
});
|
||||
|
||||
it('should set a cookie with default parameters', () => {
|
||||
setCookieWithDomain('myCookie', 'cookieValue');
|
||||
|
||||
expect(Cookies.set).toHaveBeenCalledWith(
|
||||
'myCookie',
|
||||
'cookieValue',
|
||||
expect.objectContaining({
|
||||
expires: 365,
|
||||
sameSite: 'Lax',
|
||||
domain: undefined,
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
it('should set a cookie with custom expiration and sameSite attribute', () => {
|
||||
setCookieWithDomain('myCookie', 'cookieValue', {
|
||||
expires: 30,
|
||||
});
|
||||
|
||||
expect(Cookies.set).toHaveBeenCalledWith(
|
||||
'myCookie',
|
||||
'cookieValue',
|
||||
expect.objectContaining({
|
||||
expires: 30,
|
||||
sameSite: 'Lax',
|
||||
domain: undefined,
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
it('should set a cookie with a specific base domain', () => {
|
||||
setCookieWithDomain('myCookie', 'cookieValue', {
|
||||
baseDomain: 'example.com',
|
||||
});
|
||||
|
||||
expect(Cookies.set).toHaveBeenCalledWith(
|
||||
'myCookie',
|
||||
'cookieValue',
|
||||
expect.objectContaining({
|
||||
expires: 365,
|
||||
sameSite: 'Lax',
|
||||
domain: 'example.com',
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
it('should set a cookie with custom expiration, sameSite attribute, and specific base domain', () => {
|
||||
setCookieWithDomain('myCookie', 'cookieValue', {
|
||||
expires: 7,
|
||||
baseDomain: 'example.com',
|
||||
});
|
||||
|
||||
expect(Cookies.set).toHaveBeenCalledWith(
|
||||
'myCookie',
|
||||
'cookieValue',
|
||||
expect.objectContaining({
|
||||
expires: 7,
|
||||
sameSite: 'Lax',
|
||||
domain: 'example.com',
|
||||
})
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user