diff --git a/package.json b/package.json index ad27bb905..d3261af9c 100644 --- a/package.json +++ b/package.json @@ -146,7 +146,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" } diff --git a/src/express.js b/src/express.js index b729a9bd6..c8bd4c13f 100644 --- a/src/express.js +++ b/src/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); }; } 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 f0d8e190d..797ced8bf 100644 --- a/test/express-test.js +++ b/test/express-test.js @@ -3,6 +3,7 @@ require('./util/test-init'); var chai = require('chai'); chai.config.includeStack = true; +const expect = chai.expect; var path = require('path'); var marko = require('marko'); 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; @@ -102,7 +103,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);