From 6fff9dea1dca773c37fa52e0b3bb1009fd48b827 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Tue, 16 May 2017 13:59:42 +0800 Subject: [PATCH 1/3] enable res.marko can catch a error safe use like res.marko(..).catch((err) => { next(err); }) --- express.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/express.js b/express.js index 38f99a73a..fd0686a03 100644 --- a/express.js +++ b/express.js @@ -44,6 +44,6 @@ function patchResponse(response) { res.set({ 'content-type': 'text/html; charset=utf-8' }); - template.render(data, res); + return template.render(data, res); }; } From cbb344f3622a0da4fdd8140d4daa6a9bf6e28969 Mon Sep 17 00:00:00 2001 From: Austin Kelleher Date: Tue, 16 May 2017 10:01:09 -0400 Subject: [PATCH 2/3] Add basic test for ensuring that res.marko returns a promise. --- .../express/return-promise/template.marko | 1 + test/autotests/express/return-promise/test.js | 28 +++++++++++++++++++ test/express-test.js | 9 +++--- 3 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 test/autotests/express/return-promise/template.marko create mode 100644 test/autotests/express/return-promise/test.js diff --git a/test/autotests/express/return-promise/template.marko b/test/autotests/express/return-promise/template.marko new file mode 100644 index 000000000..7c89b545c --- /dev/null +++ b/test/autotests/express/return-promise/template.marko @@ -0,0 +1 @@ +
diff --git a/test/autotests/express/return-promise/test.js b/test/autotests/express/return-promise/test.js new file mode 100644 index 000000000..f82c28db4 --- /dev/null +++ b/test/autotests/express/return-promise/test.js @@ -0,0 +1,28 @@ +'use strict'; + +let fulfilled = false; + +exports.createApp = function(express, markoExpressPath) { + var app = express(); + var markoExpress = require(markoExpressPath); + + app.use(markoExpress()); + return app; +}; + +exports.createController = function(template) { + return function(req, res) { + return res.marko(template) + .then(() => { + fulfilled = true; + }) + .catch((err) => { + console.error('Error fulfilling res.marko: ', err); + }); + }; +}; + +exports.checkResponse = function(response, expect, helpers) { + expect(fulfilled).to.equal(true); + expect(response.body).to.equal('
'); +}; diff --git a/test/express-test.js b/test/express-test.js index d1b523388..fc156c45a 100644 --- a/test/express-test.js +++ b/test/express-test.js @@ -3,6 +3,7 @@ require('./util/patch-module'); var chai = require('chai'); chai.config.includeStack = true; +const expect = chai.expect; var path = require('path'); var marko = require('../'); var autotest = require('./autotest'); @@ -25,12 +26,12 @@ describe('express', function() { require(markoExpressPath); - chai.expect(express.response.marko).to.equal(fn); + expect(express.response.marko).to.equal(fn); }); it('should be able to register for multiple express instances', function() { // test res.marko is added to the real express response require(markoExpressPath); - chai.expect(express.response.marko).to.be.a('function'); + expect(express.response.marko).to.be.a('function'); // set up an express mock object and hijack require var expressMock = { response:{} }; @@ -43,7 +44,7 @@ describe('express', function() { // check that res.marko is added to the mocked express response require(markoExpressPath); - chai.expect(expressMock.response.marko).to.be.a('function'); + expect(expressMock.response.marko).to.be.a('function'); // return require to its original state module.require = _require; @@ -93,7 +94,7 @@ describe('express', function() { if(main.checkResponse) { response.body = body; response.error = error; - main.checkResponse(response, chai.expect, helpers); + main.checkResponse(response, expect, helpers); } else { if(error) { return done(error); From 3d757a20f39bcb4dc5ae48b4b0d7ed7288e4c407 Mon Sep 17 00:00:00 2001 From: Austin Kelleher Date: Tue, 16 May 2017 10:05:28 -0400 Subject: [PATCH 3/3] 4.3.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9758f03af..c16ec0a5c 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ ] }, "homepage": "http://markojs.com/", - "version": "4.3.0", + "version": "4.3.1", "logo": { "url": "https://raw.githubusercontent.com/marko-js/branding/master/marko-logo-small.png" },