From 2d10490ca3a747d4ec0f0de5791e20ab5ba0a796 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 27 Oct 2016 11:57:07 +0300 Subject: [PATCH] more plugin tests --- src/plugins.js | 6 +++--- test/plugins.js | 27 ++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/plugins.js b/src/plugins.js index d5a86d72dc..042561759a 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -248,8 +248,8 @@ var middleware; callback = matching; matching = true; } - - var url = (nconf.get('registry') || 'https://packages.nodebb.org') + '/api/v1/plugins' + (matching !== false ? '?version=' + require('../package.json').version : ''); + var version = require(path.join(nconf.get('base_dir'), 'package.json')).version; + var url = (nconf.get('registry') || 'https://packages.nodebb.org') + '/api/v1/plugins' + (matching !== false ? '?version=' + version : ''); require('request')(url, { json: true @@ -265,7 +265,7 @@ var middleware; Plugins.normalise = function (apiReturn, callback) { var pluginMap = {}; - var dependencies = require.main.require('./package.json').dependencies; + var dependencies = require(path.join(nconf.get('base_dir'), 'package.json')).dependencies; apiReturn = apiReturn || []; for(var i = 0; i < apiReturn.length; ++i) { apiReturn[i].id = apiReturn[i].name; diff --git a/test/plugins.js b/test/plugins.js index 87acbdb82f..8cb76e80bb 100644 --- a/test/plugins.js +++ b/test/plugins.js @@ -22,7 +22,7 @@ describe('Plugins', function () { }); }); - it('should return true of hook has listeners', function (done) { + it('should return true if hook has listeners', function (done) { assert(plugins.hasListeners('filter:parse.post')); done(); }); @@ -71,5 +71,30 @@ describe('Plugins', function () { }); }); + it('should get plugin data from nbbpm', function (done) { + plugins.get('nodebb-plugin-markdown', function (err, data) { + assert.ifError(err); + var keys = ['id', 'name', 'url', 'description', 'latest', 'installed', 'active', 'latest']; + assert.equal(data.name, 'nodebb-plugin-markdown'); + assert.equal(data.id, 'nodebb-plugin-markdown'); + keys.forEach(function (key) { + assert(data.hasOwnProperty(key)); + }); + done(); + }); + }); + + it('should get a list of plugins', function (done) { + plugins.list(function (err, data) { + assert.ifError(err); + var keys = ['id', 'name', 'url', 'description', 'latest', 'installed', 'active', 'latest']; + assert(Array.isArray(data)); + keys.forEach(function (key) { + assert(data[0].hasOwnProperty(key)); + }); + done(); + }); + }); + });