1 |
|
2 | const _ = require('underscore');
|
3 | const path = require('path');
|
4 | const assert = require('assert');
|
5 | const utils = require('../lib/utils');
|
6 | const parser = require('../lib/docparser');
|
7 | const builder = require('../lib/builder');
|
8 | const Firedoc = require('../lib/firedoc').Firedoc;
|
9 | const Handlebars = require('handlebars');
|
10 |
|
11 | describe('filedoc.helpers', function () {
|
12 |
|
13 | var src = path.join(__dirname, './targets/class');
|
14 | var doc = new Firedoc({
|
15 | 'paths': [src],
|
16 | 'linkNatives': false
|
17 | });
|
18 | var ast, ctx;
|
19 | var callOptions = {
|
20 | fn: function () {
|
21 | return '';
|
22 | }
|
23 | };
|
24 |
|
25 | before(function (next) {
|
26 | doc.walk(next);
|
27 | });
|
28 | before(function (next) {
|
29 | ast = parser.parse('js', doc.filemap, doc.dirmap);
|
30 | ctx = builder.compile(ast, doc.options, next);
|
31 | });
|
32 |
|
33 | describe('.renderFileTree', function () {
|
34 | it('should render 1-level file tree', function () {
|
35 | var filetree = utils.buildFileTree(_.values(ast.files));
|
36 | var html = ctx.helpers.renderFileTree.call(ctx, filetree);
|
37 | assert.ok(html);
|
38 | });
|
39 | });
|
40 |
|
41 | describe('.crossLink', function () {
|
42 | it('shoud return empty', function () {
|
43 | var ret = ctx.helpers.crossLink.call(ctx, null, callOptions);
|
44 | assert.equal(ret, 'unknown');
|
45 | });
|
46 | it('should crossLink with 2 links', function () {
|
47 | var ret = ctx.helpers.crossLink.call(ctx, 'Number|Object');
|
48 | assert.equal(ret, 'Number | Object');
|
49 | });
|
50 | it('should crossLink with 1 link', function () {
|
51 | var ret = ctx.helpers.crossLink.call(ctx, 'Array', callOptions);
|
52 | assert.equal(ret, 'Array');
|
53 | });
|
54 | it('should link natives', function () {
|
55 | ctx.options.linkNatives = true;
|
56 | var ret = ctx.helpers.crossLink.call(ctx, 'Array', callOptions);
|
57 | assert.equal(ret, '<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array" class="crosslink external" target="_blank">Array</a>');
|
58 | });
|
59 | it('should crosslink a dot class', function () {
|
60 | var ret = ctx.helpers.crossLink.call(ctx, 'Clazz.Example', callOptions);
|
61 | assert.equal(ret, '<a href="../classes/ClazzExample.html" class="crosslink">Clazz.Example</a>');
|
62 | });
|
63 | it('should crossLink class/name', function () {
|
64 | var ret = ctx.helpers.crossLink.call(ctx, 'ClazzExample/method1', callOptions);
|
65 | assert.equal(ret, '<a href="../classes/ClazzExample.html#method_method1" class="crosslink">method1</a>');
|
66 | });
|
67 | it('should crossLink property', function () {
|
68 | var ret = ctx.helpers.crossLink.call(ctx, 'ClazzExample/name:property', callOptions);
|
69 | assert.equal(ret, '<a href="../classes/ClazzExample.html#property_name" class="crosslink">name</a>');
|
70 | });
|
71 | it('should crossLink attribute', function () {
|
72 | var ret = ctx.helpers.crossLink.call(ctx, 'SecondClazz/attr1:attr', callOptions);
|
73 | assert.equal(ret, '<a href="../classes/SecondClazz.html#attr_attr1" class="crosslink">attr1</a>');
|
74 | });
|
75 | it('should crossLink event', function () {
|
76 | var ret = ctx.helpers.crossLink.call(ctx, 'ClazzExample/evt1:event', callOptions);
|
77 | assert.equal(ret, '<a href="../classes/ClazzExample.html#event_evt1" class="crosslink">evt1</a>');
|
78 | });
|
79 | it('should crossLink webbase', function () {
|
80 |
|
81 | });
|
82 | });
|
83 |
|
84 | describe('.crossLinkRaw', function () {
|
85 | before(function () {
|
86 | ctx.options.linkNatives = true;
|
87 | });
|
88 | it('should return 2 links', function () {
|
89 | var ret = ctx.helpers.crossLinkRaw.call(ctx, 'Number|Object', callOptions);
|
90 | assert.equal(ret, 'https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Number | https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object');
|
91 | });
|
92 | });
|
93 |
|
94 | }); |
\ | No newline at end of file |