Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mark-bradshaw committed May 20, 2015
1 parent 2f9def2 commit 4393de1
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 29 deletions.
2 changes: 1 addition & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"max-depth": [1, 3],
"complexity": [2, 7],
"max-params": [1, 3],
"max-nested-callbacks": [2, 2],
"max-nested-callbacks": [2, 3],
"consistent-this": [1, "self"],
"no-extra-bind": 1,
"space-after-keywords": [2, "always"],
Expand Down
20 changes: 10 additions & 10 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ var data = {

/* adding arrays, to hold the policies */
_applyPoints.forEach(function (applyPoint) {
data[applyPoint] = [];
data[applyPoint] = {};
});

var runPolicies = function (policies, request, reply) {
Expand Down Expand Up @@ -74,7 +74,12 @@ var loadPolicies = function (server, options, next) {
var match = null;
var re = /(.+)\.js$/;

var addPolicy = function addPolicy(filename, addPolicyNext) {
var policyFiles = fs.readdirSync(options.policyDirectory);
if (policyFiles.length === 0) {
return next();
}

function addPolicy(filename, addPolicyNext) {

// Only looking for .js files in the policies folder
match = filename.match(re);
Expand Down Expand Up @@ -112,19 +117,15 @@ var loadPolicies = function (server, options, next) {
}

addPolicyNext();
};

var policyFiles = fs.readdirSync(options.policyDirectory);
if (policyFiles.length === 0) {
return next();
}

async.eachSeries(policyFiles, addPolicy, function (err) {

next(err);
});
};

var reset = function () {
var reset = function reset() {

data = {
names: [],
Expand All @@ -133,7 +134,7 @@ var reset = function () {

/* adding arrays to hold the policies */
_applyPoints.forEach(function (applyPoint) {
data[applyPoint] = [];
data[applyPoint] = {};
});
};

Expand All @@ -143,7 +144,6 @@ exports.register = function register(server, options, next) {
server.expose('data', data);
server.expose('reset', reset);


options.defaultApplyPoint = options.defaultApplyPoint || 'onPreHandler'; // default application point

if (options.policyDirectory !== undefined) {
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mrhorse",
"version": "0.0.3",
"version": "1.0.0",
"description": "Apply policies to hapi routes",
"main": "index",
"scripts": {
Expand All @@ -14,7 +14,7 @@
"hapi",
"policy"
],
"author": "Mark Bradshaw <mark.bradshaw@gmail.com> and Brad Olson <brad.olson@movedbylight.com>",
"author": "Mark Bradshaw <mark.bradshaw@gmail.com>, Brad Olson <brad.olson@movedbylight.com>, Pavel Polyakov",
"license": "MIT",
"bugs": {
"url": "https://github.com/mark-bradshaw/mrhorse/issues"
Expand All @@ -33,4 +33,4 @@
"hapi": "^8.0.0",
"lab": "^5.1.0"
}
}
}
4 changes: 2 additions & 2 deletions test/fixtures/incorrectApplyPoint.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ var incorrectApplyPoint = function(request, reply, callback) {
callback(null, false, 'custom');
};

incorrectApplyPoint.applyPoint='onIncorrect';
incorrectApplyPoint.applyPoint = 'onIncorrect'; // invalid hapi event name

module.exports = incorrectApplyPoint;
module.exports = incorrectApplyPoint;
57 changes: 44 additions & 13 deletions test/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
/* eslint-disable */

var Code = require('code');
var fs = require('fs');
var Hapi = require('hapi');
var Lab = require('lab');
var lab = exports.lab = Lab.script();
var util = require('util');

var mrhorse = require('..');

Expand Down Expand Up @@ -37,9 +40,9 @@ lab.experiment('Non standard setups', function (done) {

server.register({
register: require('..'),
options : {}
options: {}
},
function (err) {
function () {

Code.expect(server.plugins.mrhorse).to.be.an.object();
Code.expect(server.plugins.mrhorse.data.names.length).to.equal(0);
Expand All @@ -51,38 +54,63 @@ lab.experiment('Non standard setups', function (done) {

try {
fs.mkdirSync(__dirname + '/emptypolicies');

} catch (err) {
}
catch (err) {
console.log(err);
}

server.register({
register: require('..'),
options : {
options: {
policyDirectory: __dirname + '/emptypolicies'
}
},
function (err) {
function () {

Code.expect(server.plugins.mrhorse).to.be.an.object();
Code.expect(server.plugins.mrhorse.data.names.length).to.equal(0);

// cleanup
try {
fs.rmdirSync(__dirname + '/emptypolicies');
} catch (err2) {
console.log(err2);
}
catch (err) {
console.log(err);
}

done();


});
});

lab.test('accepts an alternate default apply point', function(done) {

server.register({
register: require('..'),
options : {
policyDirectory: __dirname + '/policies',
defaultApplyPoint: 'onPostHandler'
}
}, function (err) {

if (err) {
console.log(err);
}

Code.expect(server.plugins.mrhorse.data.setHandlers.onPostHandler).to.equal(true);
Code.expect(Object.keys(server.plugins.mrhorse.data.onPostHandler).length).to.equal(7);

server.plugins.mrhorse.reset();

done();
});
})

lab.test('incorrect applyPoint', function (done) {

// pull this bad policy in to the policies folder.
try {
fs.mkdirSync(__dirname + '/incorrect-policies');
fs.writeFileSync(__dirname+'/incorrect-policies/incorrectApplyPoint.js', fs.readFileSync(__dirname+'/fixtures/incorrectApplyPoint.js'));
fs.writeFileSync(__dirname + '/incorrect-policies/incorrectApplyPoint.js', fs.readFileSync(__dirname + '/fixtures/incorrectApplyPoint.js'));
} catch (err) {
console.log(err);
}
Expand All @@ -96,6 +124,9 @@ lab.experiment('Non standard setups', function (done) {
function (err) {

Code.expect(err.toString()).to.equal('Error: Trying to set incorrect applyPoint for the policy: onIncorrect');

// cleanup
server.plugins.mrhorse.reset();
try {
fs.unlinkSync(__dirname + '/incorrect-policies/incorrectApplyPoint.js');
fs.rmdirSync(__dirname + '/incorrect-policies');
Expand Down Expand Up @@ -234,7 +265,7 @@ lab.experiment('Normal setup', function (done) {
register: require('..'),
options : {
policyDirectory: __dirname + '/policies',
applyPoint: 'onPreHandler'
defaultApplyPoint: 'onPreHandler'
}
}, function (err) {

Expand Down Expand Up @@ -344,4 +375,4 @@ lab.experiment('Normal setup', function (done) {
done();
});
});
});
});

0 comments on commit 4393de1

Please sign in to comment.