kinvey-flex-sdk
Advanced tools
Comparing version 4.1.0 to 4.1.1-next.0
@@ -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 @@ }); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
688570
15866
2