Skip to content

Commit

Permalink
few more tests for code coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
shriramshankar committed Jan 6, 2017
1 parent a28b993 commit f855a76
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 6 deletions.
64 changes: 64 additions & 0 deletions tests/api/v1/helpers/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/**
* Copyright (c) 2016, salesforce.com, inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or
* https://opensource.org/licenses/BSD-3-Clause
*/

/**
* tests/api/v1/aspects/utils.js
*/
'use strict';

const tu = require('../../../testUtils');
const Subject = tu.db.Subject;
const expect = require('chai').expect;
const apiUtils = require('../../../../api/v1/helpers/verbs/utils.js');

describe('util function tests', () => {
let token;
let subject;
const na = {
name: `${tu.namePrefix}NorthAmerica`,
description: 'continent',
};
before((done) => {
Subject.create(na)
.then((sub) => {
subject = sub;
return tu.createUser('myUNiqueUser');
})
.then((usr) => {
return tu.createTokenFromUserName(usr.name);
})
.then((tkn) => {
token= tkn;
done();
})
.catch(done);
});

after(tu.forceDeleteSubject);
after(tu.forceDeleteUser);

it('return true when no writers are added to the object', (done) => {
const fakeReq = { headers: { authorization: token } };
apiUtils.isWritable(fakeReq, subject)
.then((ok) => {
expect(ok).to.equal(true);
done();
})
.catch((err) => done(err));
});

it('must throw an error for invalid tokens', (done) => {
const fakeReq = { headers: { authorization: 'invalidtoken' } };
apiUtils.isWritable(fakeReq, subject)
.then(() => done(tu.malFormedTokenError))
.catch((err) => {
expect(err).to.not.equal('undefined');
done();
});
});
});
7 changes: 4 additions & 3 deletions tests/testUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ module.exports = {
uniError: new Error('expecting SequelizeUniqueConstraintError'),
valErrorName: 'SequelizeValidationError',
valError: new Error('expecting SequelizeValidationError'),
malFormedTokenError: new Error('expecting the token to be malformed'),
forceDelete,
schemaValidationErrorName: 'SCHEMA_VALIDATION_FAILED',
gotExpectedLength(stringOrArray, len) {
Expand Down Expand Up @@ -142,20 +143,20 @@ module.exports = {
.then(() => jwtUtil.createToken(userName, userName));
}, // createToken

// delete users
// delete user
forceDeleteUser(done) {
forceDelete(db.User, testStartTime)
.then(() => forceDelete(db.Profile, testStartTime))
.then(() => done())
.catch(done);
}, // forceDeleteUser

// delete users
// delete subject
forceDeleteSubject(done) {
forceDelete(db.Subject, testStartTime)
.then(() => done())
.catch(done);
}, // forceDeleteUser
}, // forceDeleteSubject

toggleOverride(key, value) {
featureToggles._toggles[key] = value;
Expand Down
6 changes: 3 additions & 3 deletions utils/jwtUtil.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,12 @@ function getUsernameFromToken(req) {
if (req && req.headers && req.headers.authorization) {
jwt.verify(req.headers.authorization, env.tokenSecret, {},
(err, decodedData) => {
if (err !== null) {
reject(err);
if (err !== null || !decodedData) {
return reject(err);
}

const username = decodedData.username;
resolve(username);
return resolve(username);
});
} else {
reject(new apiErrors.ForbiddenError({
Expand Down

0 comments on commit f855a76

Please sign in to comment.