Socket
Socket
Sign inDemoInstall

kinvey-flex-sdk

Package Overview
Dependencies
Maintainers
5
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kinvey-flex-sdk - npm Package Compare versions

Comparing version 4.1.0 to 4.1.1-next.0

2

lib/service/data.js

@@ -206,3 +206,3 @@ /**

const dataCompletionHandler = kinveyCompletionHandler(task, false, callback);
const dataCompletionHandler = kinveyCompletionHandler(task, modules, callback);
const operationHandler = serviceObjectToProcess.resolve(dataOp);

@@ -209,0 +209,0 @@ return operationHandler(task.request, dataCompletionHandler, modules);

@@ -88,3 +88,3 @@ /**

const functionCompletionHandler = kinveyCompletionHandler(task, task.hookType === 'pre', callback);
const functionCompletionHandler = kinveyCompletionHandler(task, modules, callback);
const functionHandler = resolve(task.taskName);

@@ -91,0 +91,0 @@ return functionHandler(context, functionCompletionHandler, modules);

@@ -31,32 +31,26 @@ /**

function createCompletionHandler(task, requestBody, cb) {
const callback = !cb && typeof requestBody === 'function' ? requestBody : cb;
const updateRequestBody = typeof requestBody === 'function' ? {} : requestBody;
let responseCallback = callback;
function normalizeError(error) {
if (error instanceof Error) {
return {
name: error.name,
message: error.message,
stack: error.stack
};
}
return error;
}
function createCompletionHandler(task, modules, cb) {
const updateRequestBody = task.hookType === 'pre';
let responseCallback = cb;
function completionHandler(body) {
const result = {};
result.body = body;
function normalizeError(error) {
if (error instanceof Error) {
return {
name: error.name,
message: error.message,
stack: error.stack
};
}
return error;
}
function updateBody(body) {
if (body != null) {
result.body = body;
}
}
updateBody(body);
const api = {
setBody(body) {
updateBody(body);
if (body != null) {
result.body = body;
}
return this;

@@ -184,2 +178,6 @@ },

if (modules.requestContext && modules.requestContext.getCustomRequestProperties()) {
task.request.headers['x-kinvey-custom-request-properties'] = JSON.stringify(modules.requestContext.getCustomRequestProperties());
}
task.response.statusCode = result.statusCode;

@@ -186,0 +184,0 @@

{
"name": "kinvey-flex-sdk",
"version": "4.1.0",
"version": "4.1.1-next.0",
"description": "SDK for creating Kinvey Flex Services",

@@ -5,0 +5,0 @@ "engines": {

@@ -15,5 +15,6 @@ /**

const proxyquire = require('proxyquire');
const should = require('should');
const sinon = require('sinon');
const proxyquire = require('proxyquire');
const loggerMock = require('./mocks/loggerMock');

@@ -23,2 +24,3 @@

const functions = proxyquire('../../../lib/service/functions', { './kinveyCompletionHandler': completionHandler });
const moduleGenerator = require('../../../lib/service/moduleGenerator');

@@ -81,2 +83,6 @@ const testTaskName = 'myTaskName';

hookType: 'pre',
baasUrl: 'some-url',
appMetadata: {
_id: quickRandom()
},
request: {

@@ -144,2 +150,3 @@ method: 'POST',

});
describe('discovery', () => {

@@ -167,2 +174,3 @@ afterEach((done) => {

});
describe('functions processing', () => {

@@ -309,2 +317,3 @@ afterEach((done) => {

});
it("should return a 'BadRequest' response with a null task name", (done) => {

@@ -318,2 +327,3 @@ const task = sampleTask(null);

});
it("should return a 'BadRequest' response with a non-JSON task", (done) => {

@@ -327,2 +337,3 @@ const task = sampleBadTask(null);

});
it('should return a successful response', (done) => {

@@ -332,3 +343,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete().ok().next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -340,2 +351,3 @@ result.response.statusCode.should.eql(200);

});
it('should include a body', (done) => {

@@ -345,3 +357,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
result.response.statusCode.should.eql(200);

@@ -354,2 +366,3 @@ result.response.body.should.eql({

});
it('should explicitly set a body', (done) => {

@@ -362,3 +375,3 @@ const taskName = quickRandom();

.done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
result.response.statusCode.should.eql(200);

@@ -371,2 +384,3 @@ result.response.body.should.eql({

});
it('should explicitly set a query', (done) => {

@@ -381,3 +395,3 @@ const taskName = quickRandom();

.next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
result.response.statusCode.should.eql(200);

@@ -389,2 +403,3 @@ result.request.query.should.eql({ query: JSON.stringify(query), sort: JSON.stringify(sort) });

});
it('should include the response body and headers when task is a post task', (done) => {

@@ -400,3 +415,3 @@ const taskName = quickRandom();

});
functions.process(task, null, () => done());
functions.process(task, {}, () => done());
});

@@ -414,3 +429,3 @@

});
functions.process(task, null, () => done());
functions.process(task, {}, () => done());
});

@@ -428,3 +443,3 @@

});
functions.process(task, null, () => done());
functions.process(task, {}, () => done());
});

@@ -436,3 +451,3 @@

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -451,3 +466,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -462,2 +477,19 @@ result.response.statusCode.should.eql(200);

it('should add customRequestProperties to request.header.x-kinvey-custom-request-properties', (done) => {
const taskName = quickRandom();
const task = samplePreTask(taskName);
task.request.headers['x-kinvey-custom-request-properties'] = '{"keyFromRequest":"testValue"}';
functions.register(taskName, (context, complete, modules) => {
modules.requestContext.setCustomRequestProperty('keyFromHook', 'testValue');
complete().ok().next();
});
functions.process(task, moduleGenerator.generate(task), (err, result) => {
should.not.exist(err);
result.request.headers.should.containEql({ 'x-kinvey-custom-request-properties': '{"keyFromRequest":"testValue","keyFromHook":"testValue"}', });
done();
});
});
it('should keep existing response body when task is a post task and no body is set and the request is ended',

@@ -468,3 +500,3 @@ (done) => {

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -482,3 +514,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -501,3 +533,3 @@ result.response.statusCode.should.eql(200);

});
functions.process(task, null, () => done());
functions.process(task, {}, () => done());
});

@@ -509,3 +541,3 @@

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -525,3 +557,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -542,3 +574,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -556,3 +588,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -578,3 +610,3 @@ result.response.statusCode.should.eql(200);

});
functions.process(task, null, () => done());
functions.process(task, {}, () => done());
});

@@ -586,3 +618,3 @@

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -602,3 +634,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -619,3 +651,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -633,3 +665,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -647,3 +679,3 @@ result.response.statusCode.should.eql(200);

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).created().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -657,2 +689,3 @@ result.response.statusCode.should.eql(201);

});
it('should return a 202 accepted', (done) => {

@@ -662,3 +695,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).accepted().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -672,2 +705,3 @@ result.response.statusCode.should.eql(202);

});
it('should return a 400 bad request', (done) => {

@@ -677,3 +711,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete('This is a bad request').badRequest().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -688,2 +722,3 @@ result.response.statusCode.should.eql(400);

});
it('should return a 401 unauthorized', (done) => {

@@ -693,3 +728,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete('You are not authorized!').unauthorized().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -704,2 +739,3 @@ result.response.statusCode.should.eql(401);

});
it('should return a 403 forbidden', (done) => {

@@ -709,3 +745,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete('Forbidden!').forbidden().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -719,2 +755,3 @@ result.response.statusCode.should.eql(403);

});
it('should return a 404 not found', (done) => {

@@ -724,3 +761,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete('The request is not found!').notFound().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -735,2 +772,3 @@ result.response.statusCode.should.eql(404);

});
it('should return a 405 not allowed', (done) => {

@@ -740,3 +778,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete('The request is not allowed!').notAllowed().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -750,2 +788,3 @@ result.response.statusCode.should.eql(405);

});
it('should return a 501 not implemented', (done) => {

@@ -755,3 +794,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete('This isn\'t implemented').notImplemented().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -765,2 +804,3 @@ result.response.statusCode.should.eql(501);

});
it('should return a 550 runtime error', (done) => {

@@ -771,3 +811,3 @@ const taskName = quickRandom();

.runtimeError().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -783,2 +823,3 @@ result.response.statusCode.should.eql(550);

});
it('should process a next (continuation) handler', (done) => {

@@ -788,3 +829,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().next());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -799,2 +840,3 @@ result.response.statusCode.should.eql(200);

});
it('should process a done (completion) handler', (done) => {

@@ -804,3 +846,3 @@ const taskName = quickRandom();

functions.register(taskName, (context, complete) => complete({ foo: 'bar' }).ok().done());
functions.process(task, null, (err, result) => {
functions.process(task, {}, (err, result) => {
should.not.exist(err);

@@ -841,3 +883,3 @@ result.response.statusCode.should.eql(200);

functions.process(task, null, processCallbackSpy);
functions.process(task, {}, processCallbackSpy);
});

@@ -844,0 +886,0 @@ });

@@ -31,48 +31,49 @@ /**

});
it('exposes the authenticated username through the getAuthenticatedUsername method', (done) => {
it('exposes the authenticated username through the getAuthenticatedUsername method', () => {
requestContext.getAuthenticatedUsername().should.eql(metadata.authenticatedUsername);
done();
});
it('exposes the authenticated id through the getAuthenticatedUserId method', (done) => {
it('exposes the authenticated id through the getAuthenticatedUserId method', () => {
requestContext.getAuthenticatedUserId().should.eql(metadata.authenticatedUserId);
done();
});
it('exposes the custom properties through the getCustomRequestProperty method', (done) => {
it('exposes the custom properties through the getCustomRequestProperty method', () => {
requestContext.getCustomRequestProperty('first').should.eql(metadata.customRequestProperties.first);
done();
});
it('exposes the security context through the getSecurityContext method', (done) => {
it('exposes the security context through the getSecurityContext method', () => {
requestContext.getSecurityContext().should.eql(metadata.securityContext);
done();
});
it('allows setting the custom properties through the setCustomRequestProperty method', (done) => {
it('allows setting the custom properties through the setCustomRequestProperty method', () => {
requestContext.setCustomRequestProperty('second', 2);
requestContext.getCustomRequestProperty('second').should.eql(2);
done();
});
describe('getCustomRequestProperty return value', () => {
it('should be undefined when nothing is passed', (done) => {
it('should be undefined when nothing is passed', () => {
requestContext = requestContextModule(metadata);
(requestContext.getCustomRequestProperty() === undefined).should.be.true();
done();
});
describe('when property does not exist', () =>
it('returns undefined', (done) => {
it('returns undefined', () => {
(requestContext.getCustomRequestProperty('doesntexist') === undefined).should.be.true();
done();
}));
describe('when getting a property whose value is an empty string', () =>
it('returns an empty string', (done) => {
it('returns an empty string', () => {
requestContext.setCustomRequestProperty('emptyString', '');
requestContext.getCustomRequestProperty('emptyString').should.eql('');
done();
}));
describe('when getting a property whose value is false', () =>
it('returns false', (done) => {
it('returns false', () => {
requestContext.setCustomRequestProperty('shouldBeFalse', false);
requestContext.getCustomRequestProperty('shouldBeFalse').should.be.false();
done();
}));
describe('when getting a property whose value is an object', () =>
it('returns the object', (done) => {
it('returns the object', () => {
requestContext.setCustomRequestProperty('prop', {

@@ -84,15 +85,15 @@ a: 1

prop.a.should.eql(1);
done();
}));
});
describe('setCustomProperty special cases', () => {
describe('when passing undefined as a value', () => {
it('sets the value to undefined', (done) => {
it('sets the value to undefined', () => {
requestContext.setCustomRequestProperty('newprop');
(requestContext.getCustomRequestProperty('newprop') === undefined).should.be.true();
done();
});
});
describe('when overwriting a value', () => {
it('the value is overwritten', (done) => {
it('the value is overwritten', () => {
metadata.customRequestProperties.first = 1;

@@ -102,183 +103,180 @@ requestContext.getCustomRequestProperty('first').should.eql(1);

requestContext.getCustomRequestProperty('first').should.eql(2);
done();
});
});
describe('when passing null as a value', () => {
it('the value is set to null', (done) => {
it('the value is set to null', () => {
requestContext.setCustomRequestProperty('shouldbenull', null);
(requestContext.getCustomRequestProperty('shouldbenull') === null).should.be.true();
done();
});
});
describe('when passing undefined as a property name', () =>
it('the value is set to null', (done) => {
it('the value is set to null', () => {
requestContext.setCustomRequestProperty('undefined', 1);
(requestContext.getCustomRequestProperty('undefined') === 1).should.be.true();
done();
}));
describe('when passing a special characater in the value', () =>
it('the value is set properly', (done) => {
it('the value is set properly', () => {
requestContext.setCustomRequestProperty('foo', 'bár');
requestContext.getCustomRequestProperty('foo').should.eql('bár');
done();
}));
describe('when passing an object property value', () =>
it('the value is set properly', (done) => {
requestContext.setCustomRequestProperty('foo', {
prop: 1
});
it('the value is set properly', () => {
requestContext.setCustomRequestProperty('foo', { prop: 1 });
requestContext.getCustomRequestProperty('foo').prop.should.eql(1);
done();
}));
});
describe('Client App Version API', () => {
describe('stringValue()', () => {
it('should return the current client version for the request', (done) => {
it('should return the current client version for the request', () => {
metadata.clientAppVersion = '1.0.1';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.stringValue().should.eql(metadata.clientAppVersion);
done();
});
it('should return null when metadata value is null', (done) => {
it('should return null when metadata value is null', () => {
metadata.clientAppVersion = null;
requestContext = requestContextModule(metadata);
(requestContext.clientAppVersion.stringValue() === null).should.be.true();
done();
});
it('returns null when no customer app version is passed in', (done) => {
it('returns null when no customer app version is passed in', () => {
requestContext = requestContextModule(metadata);
(requestContext.clientAppVersion.stringValue() === null).should.be.true();
done();
});
it('should return null when metadata value is \'\'', (done) => {
it('should return null when metadata value is \'\'', () => {
metadata.clientAppVersion = '';
requestContext = requestContextModule(metadata);
(requestContext.clientAppVersion.stringValue() === null).should.be.true();
done();
});
it('should return null when metadata value is undefined', (done) => {
it('should return null when metadata value is undefined', () => {
metadata.clientAppVersion = undefined;
requestContext = requestContextModule(metadata);
(requestContext.clientAppVersion.stringValue() === null).should.be.true();
done();
});
});
describe('majorVersion()', () => {
it('should return correct value when only one number passed in', (done) => {
it('should return correct value when only one number passed in', () => {
metadata.clientAppVersion = '1';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.majorVersion().should.eql(1);
done();
});
it('should return correct value when major and minor are passed in', (done) => {
it('should return correct value when major and minor are passed in', () => {
metadata.clientAppVersion = '1.0';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.majorVersion().should.eql(1);
done();
});
it('should return correct value when major, minor and patch are passed in', (done) => {
it('should return correct value when major, minor and patch are passed in', () => {
metadata.clientAppVersion = '1.2.3';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.majorVersion().should.eql(1);
done();
});
it('should return correct value when major, minor and patch AND MORE are passed in', (done) => {
it('should return correct value when major, minor and patch AND MORE are passed in', () => {
metadata.clientAppVersion = '1.2.3.4';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.majorVersion().should.eql(1);
done();
});
it('should return correct value when major ver is more than 1 digit', (done) => {
it('should return correct value when major ver is more than 1 digit', () => {
metadata.clientAppVersion = '12.2.3';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.majorVersion().should.eql(12);
done();
});
it('returns NaN when no customer app version is passed in', (done) => {
it('returns NaN when no customer app version is passed in', () => {
metadata.clientAppVersion = '';
requestContext = requestContextModule(metadata);
(isNaN(requestContext.clientAppVersion.majorVersion())).should.be.true();
done();
});
it('should return NaN major component contains a string', (done) => {
it('should return NaN major component contains a string', () => {
metadata.clientAppVersion = '1a.1.2';
requestContext = requestContextModule(metadata);
(isNaN(requestContext.clientAppVersion.majorVersion())).should.be.true();
return done();
});
return it('should return number value minor or patch contain non-digit characters', (done) => {
it('should return number value minor or patch contain non-digit characters', () => {
metadata.clientAppVersion = '1.2a.3-beta';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.majorVersion().should.eql(1);
done();
});
});
describe('minorVersion()', () => {
it('should return correct value when major and minor are passed in', (done) => {
it('should return correct value when major and minor are passed in', () => {
metadata.clientAppVersion = '1.0';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.minorVersion().should.eql(0);
done();
});
it('should return correct value when major, minor and patch are passed in', (done) => {
it('should return correct value when major, minor and patch are passed in', () => {
metadata.clientAppVersion = '1.2.3';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.minorVersion().should.eql(2);
done();
});
it('should return correct value when major ver is more than 1 digit', (done) => {
it('should return correct value when major ver is more than 1 digit', () => {
metadata.clientAppVersion = '12.34.56';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.minorVersion().should.eql(34);
done();
});
it('returns NaN when no customer app version is passed in', (done) => {
it('returns NaN when no customer app version is passed in', () => {
metadata.clientAppVersion = '';
requestContext = requestContextModule(metadata);
(isNaN(requestContext.clientAppVersion.minorVersion())).should.be.true();
done();
});
it('should return NaN when minor component contains a string', (done) => {
it('should return NaN when minor component contains a string', () => {
metadata.clientAppVersion = '1.1a.2';
requestContext = requestContextModule(metadata);
(isNaN(requestContext.clientAppVersion.minorVersion())).should.be.true();
done();
});
it('should return correct value when major or patch contains a string', (done) => {
it('should return correct value when major or patch contains a string', () => {
metadata.clientAppVersion = '1a.2.3-beta';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.minorVersion().should.eql(2);
done();
});
});
describe('patchVersion()', () => {
it('should return correct value when major, minor and patch are passed in', (done) => {
it('should return correct value when major, minor and patch are passed in', () => {
metadata.clientAppVersion = '1.2.3';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.patchVersion().should.eql(3);
done();
});
it('should return correct value when major ver is more than 1 digit', (done) => {
it('should return correct value when major ver is more than 1 digit', () => {
metadata.clientAppVersion = '12.34.56';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.patchVersion().should.eql(56);
done();
});
it('returns NaN when no customer app version is passed in', (done) => {
it('returns NaN when no customer app version is passed in', () => {
metadata.clientAppVersion = '';
requestContext = requestContextModule(metadata);
(isNaN(requestContext.clientAppVersion.patchVersion())).should.be.true();
done();
});
it('should return NaN when patch component contains a string', (done) => {
it('should return NaN when patch component contains a string', () => {
metadata.clientAppVersion = '1.2.3-beta';
requestContext = requestContextModule(metadata);
(isNaN(requestContext.clientAppVersion.patchVersion())).should.be.true();
done();
});
it('should return correct value when major or minor contain string characters', (done) => {
it('should return correct value when major or minor contain string characters', () => {
metadata.clientAppVersion = '1a.2-beta.3';
requestContext = requestContextModule(metadata);
requestContext.clientAppVersion.patchVersion().should.eql(3);
done();
});

@@ -285,0 +283,0 @@ });

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc