UNPKG

1.96 kBJavaScriptView Raw
1const Policy = require('../classes/policy');
2const Controller = require('../classes/controller');
3const Router = require('../classes/router');
4const assert = require('assert');
5const redis = require("redis");
6const client = redis.createClient();
7const policies = require('./mocks/policies');
8const server = { redis: client, app : { get () {} } };
9const chai = require("chai");
10const sinon = require("sinon");
11const sinonChai = require("sinon-chai");
12const expect = chai.expect;
13const path = require('path');
14const base = __dirname;
15const project = {
16 routesPath : path.join(base,'../tests/mocks/routes'),
17 modelsPath : path.join(base,'../tests/mocks/models'),
18 controllersPath : path.join(base,'../tests/mocks/controllers'),
19 viewsPath : path.join(base, '../tests/mocks/views'),
20 configPath : path.join(base,'../tests/mocks/config'),
21 projectPath : path.join(base,'../tests/mocks')
22};
23
24chai.use(sinonChai);
25
26Promise = require('bluebird').Promise;
27
28describe('router', function () {
29
30 it ('should build the routes', function () {
31 let router = new Router(project, server);
32 router.buildRoutes();
33 assert.ok(router);
34 assert.deepEqual(router.controllers.ok.name, 'myController');
35 assert.deepEqual(router.models, {ok: true});
36 assert.deepEqual(router.routes, { ok: require(path.join(project.routesPath, 'ok'))});
37 });
38
39 it ('should draw a route', function () {
40 let router = new Router(project, server);
41 let spy = sinon.spy(server.app, 'get');
42
43 router.buildRoutes();
44
45 for (key in router.routes) {
46 let target = router.routes[key];
47 let method;
48 for (method in target) {
49 target[method].forEach(cfg => {
50 cfg.controller = router.controllers[key];
51 router.route(method, cfg);
52 });
53 }
54 }
55
56 assert(spy.calledOnce);
57
58 });
59
60 // Route mapping is already tested using Express' coverage.
61
62});