Мой главный. js выглядит так:
'use strict';
const express = require( 'express' );
const app = express();
const homeController = require( './controllers/homeController' );
const errorController = require( './controllers/errorController')
console.log("+get homeController");
app.get( '/', homeController );
console.log('+get homeController.showUsers');
app.get( '/users', homeController.showUsers );
В homeController. js есть метод router.get, который я хочу протестировать с помощью Chai:
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', {
title: 'Internship Approval System'
});
});
...
module.exports = router;
Мой файл router.test. js выглядит следующим образом:
var sinon = require('sinon');
var chai = require('chai');
var expect = chai.expect;
var router = require('./controllers/homeController');
describe('home route', function() {
it('should return rendered response', function() {
var req = {};
var res = {
render: sinon.spy()
};
return router.get(req, res).then(function() {
expect(res.render.calledOnce).to.be.true;
});
});
});
Я получаю сообщение об ошибке при попытке определить, вызывается ли он один раз:
1) home route
should return a rendered response:
Error: Route.get() requires a callback function but got a [object Object]
at Route.<computed> [as get] (node_modules\express\lib\router\route.js:202:15)
at Function.proto.<computed> [as get] (node_modules\express\lib\router\index.js:510:19)
at Context.<anonymous> (router.test.js:15:19)
at processImmediate (internal/timers.js:439:21)
Как я могу изменить app.get( '/', homeController );
в main для включения функции обратного вызова?