1 | const Policy = require('../classes/policy');
|
2 | const Controller = require('../classes/controller');
|
3 | const Router = require('../classes/router');
|
4 | const assert = require('assert');
|
5 | const redis = require("redis");
|
6 | const client = redis.createClient();
|
7 | const policies = require('./mocks/policies');
|
8 | const server = { redis: client, app : { get () {} } };
|
9 | const chai = require("chai");
|
10 | const sinon = require("sinon");
|
11 | const sinonChai = require("sinon-chai");
|
12 | const expect = chai.expect;
|
13 | const path = require('path');
|
14 | const base = __dirname;
|
15 | const 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 |
|
24 | chai.use(sinonChai);
|
25 |
|
26 | Promise = require('bluebird').Promise;
|
27 |
|
28 | describe('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 |
|
61 |
|
62 | });
|