🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

@bufferapp/session-manager

Package Overview
Dependencies
Maintainers
12
Versions
47
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bufferapp/session-manager - npm Package Compare versions

Comparing version

to
0.5.37

5

__mocks__/micro-rpc-client.js

@@ -28,4 +28,9 @@ const RPCClient = jest.genMockFromModule('micro-rpc-client');

return Promise.resolve('OK');
} else if (name === 'destroy') {
if (args.token === 'brokenToken') {
return Promise.reject(new Error(RPCClient.fakeErrorMessage));
}
return Promise.resolve('OK');
}
});
module.exports = RPCClient;

@@ -68,2 +68,22 @@ const RPCClient = require('micro-rpc-client');

sessionExports.destroySession = async({
req,
res,
production,
}) => {
const cookieName = sessionExports.cookieName({ production });
await sessionClient.call('destroy', {
token: sessionExports.getCookie({
name: cookieName,
req,
}),
});
res.clearCookie(cookieName, {
domain: sessionExports.cookieDomain({ production }),
});
res.clearCookie(`${production ? '' : 'local'}bufferapp_ci_session`, {
domain: '.buffer.com',
});
};
const getSession = ({

@@ -70,0 +90,0 @@ production,

112

index.test.js

@@ -11,2 +11,3 @@ import RPCClient from 'micro-rpc-client';

updateSession,
destroySession,
} from './';

@@ -28,3 +29,3 @@

it('should handle production session cookie', async () => {
const bufferCookieName = 'buffer-session';
const bufferCookieName = 'buffer_session';
const cookieValue = 'coooooookies';

@@ -58,3 +59,3 @@ const req = {

it('should handle session service failure', async () => {
const bufferCookieName = 'buffer-session';
const bufferCookieName = 'buffer_session';
const cookieValue = 'brokenCookie';

@@ -84,3 +85,3 @@ const req = {

it('should get a cookie from a request in production', () => {
const name = 'buffer-session';
const name = 'buffer_session';
const value = 'coooooookies';

@@ -115,3 +116,3 @@ const req = {

expect(cookieName({ production: true }))
.toBe('buffer-session');
.toBe('buffer_session');
});

@@ -121,3 +122,3 @@

expect(cookieName({ production: false }))
.toBe('local-buffer-session');
.toBe('local_buffer_session');
});

@@ -269,3 +270,3 @@ });

expect(res.cookie)
.toBeCalledWith('buffer-session', RPCClient.fakeAccessToken, {
.toBeCalledWith('buffer_session', RPCClient.fakeAccessToken, {
domain: '.buffer.com',

@@ -297,3 +298,3 @@ maxAge: 365 * 24 * 60 * 60 * 1000,

expect(res.cookie)
.toBeCalledWith('local-buffer-session', RPCClient.fakeAccessToken, {
.toBeCalledWith('local_buffer_session', RPCClient.fakeAccessToken, {
domain: '.local.buffer.com',

@@ -331,3 +332,3 @@ maxAge: 365 * 24 * 60 * 60 * 1000,

it('should update a session in production', async () => {
const name = 'buffer-session';
const name = 'buffer_session';
const value = 'coooooookies';

@@ -355,3 +356,3 @@ const req = {

it('should update a session in dev', async () => {
const name = 'local-buffer-session';
const name = 'local_buffer_session';
const value = 'coooooookiez';

@@ -379,3 +380,3 @@ const req = {

it('should throw update session errors', async () => {
const name = 'buffer-session';
const name = 'buffer_session';
const value = 'coooooookies';

@@ -443,2 +444,93 @@ const req = {

});
describe('destroySession', () => {
it('should destroy a session', async () => {
const name = 'buffer_session';
const value = 'coooooookies';
const req = {
cookies: {
[name]: value,
},
};
const res = {
clearCookie: jest.fn(),
send: jest.fn(),
};
const sessionClient = new RPCClient({ url: 'sometesturl' });
await destroySession({
req,
res,
sessionClient,
production: true,
});
expect(RPCClient.prototype.call)
.toBeCalledWith('destroy', {
token: value,
});
expect(res.clearCookie)
.toBeCalledWith('buffer_session', {
domain: '.buffer.com',
});
expect(res.clearCookie)
.toBeCalledWith('bufferapp_ci_session', {
domain: '.buffer.com',
});
});
it('should destroy a dev session', async () => {
const name = 'local_buffer_session';
const value = 'coooooookies';
const req = {
cookies: {
[name]: value,
},
};
const res = {
clearCookie: jest.fn(),
send: jest.fn(),
};
const sessionClient = new RPCClient({ url: 'sometesturl' });
await destroySession({
req,
res,
sessionClient,
production: false,
});
expect(RPCClient.prototype.call)
.toBeCalledWith('destroy', {
token: value,
});
expect(res.clearCookie)
.toBeCalledWith(name, {
domain: '.local.buffer.com',
});
expect(res.clearCookie)
.toBeCalledWith('localbufferapp_ci_session', {
domain: '.buffer.com',
});
});
it('should handle destory session failure', async () => {
const name = 'buffer_session';
const req = {
cookies: {
[name]: 'brokenToken',
},
};
const res = {};
const sessionClient = new RPCClient({ url: 'sometesturl' });
try {
await destroySession({
res,
req,
sessionClient,
production: true,
});
throw new Error('This should break');
} catch (err) {
expect(err.message)
.toBe(RPCClient.fakeErrorMessage);
}
});
});
});

2

package.json
{
"name": "@bufferapp/session-manager",
"version": "0.5.36",
"version": "0.5.37",
"description": "Buffer session manager",

@@ -5,0 +5,0 @@ "main": "index.js",