From edd464aca5d5400652abc8c3d497e925fe72accb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Bajto=C5=A1?= Date: Mon, 3 Nov 2014 10:00:24 +0100 Subject: [PATCH] Expose path to the built-in favicon file The path is available via `loopback.faviconFile`. --- lib/loopback.js | 19 +++++++++++++++++++ test/loopback.test.js | 15 ++++++++++++--- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/lib/loopback.js b/lib/loopback.js index ac5bf9f2..2c5b4a11 100644 --- a/lib/loopback.js +++ b/lib/loopback.js @@ -126,6 +126,25 @@ if (loopback.isServer) { }); } +/* + * Expose path to the default favicon file + * + * ***only in node*** + */ + +if (loopback.isServer) { + /** + * Path to a default favicon shipped with LoopBack. + * + * **Example** + * + * ```js + * app.use(require('serve-favicon')(loopback.faviconFile)); + * ``` + */ + loopback.faviconFile = path.resolve(__dirname, '../favicon.ico'); +} + /*! * Error handler title */ diff --git a/test/loopback.test.js b/test/loopback.test.js index d03e01e6..3fc4cc45 100644 --- a/test/loopback.test.js +++ b/test/loopback.test.js @@ -1,3 +1,5 @@ +var it = require('./util/it'); + describe('loopback', function() { var nameCounter = 0; var uniqueModelName; @@ -11,6 +13,13 @@ describe('loopback', function() { expect(loopback.ValidationError).to.be.a('function') .and.have.property('name', 'ValidationError'); }); + + it.onServer('includes `faviconFile`', function() { + var file = loopback.faviconFile; + expect(file, 'faviconFile').to.not.equal(undefined); + expect(require('fs').existsSync(loopback.faviconFile), 'file exists') + .to.equal(true); + }); }); describe('loopback.createDataSource(options)', function() { @@ -68,11 +77,11 @@ describe('loopback', function() { describe('loopback.remoteMethod(Model, fn, [options]);', function() { it("Setup a remote method.", function() { var Product = loopback.createModel('product', {price: Number}); - + Product.stats = function(fn) { // ... } - + loopback.remoteMethod( Product.stats, { @@ -80,7 +89,7 @@ describe('loopback', function() { http: {path: '/info', verb: 'get'} } ); - + assert.equal(Product.stats.returns.arg, 'stats'); assert.equal(Product.stats.returns.type, 'array'); assert.equal(Product.stats.http.path, '/info');