UNPKG

2.59 kBJavaScriptView Raw
1
2
3const _ = require('underscore');
4const path = require('path');
5const assert = require('assert');
6const sinon = require('sinon');
7const builder = require('../lib/builder');
8const Firedoc = require('../lib/firedoc').Firedoc;
9
10describe('firedoc.Firedoc', function () {
11
12 var src = path.join(__dirname, './targets/basic');
13
14 it('should create new Firedoc', function () {
15 var doc = new Firedoc({'paths': [src]});
16 assert.deepEqual(doc.options.paths, [src]);
17 assert.equal(doc.options.extensions, '.js');
18 assert.equal(doc.options.cwd, path.join(__dirname, '..'));
19 assert.equal(doc.options.dest, path.join(__dirname, '../out'));
20 assert.equal(doc.options.theme, path.join(__dirname, '../themes/default'));
21 assert.equal(doc.options.syntaxtype, 'js');
22 assert.ok(doc.options.project);
23 assert.ok(doc.options.excludes);
24 });
25
26 it('should create new Firedoc without the keyword new', function () {
27 var doc = Firedoc({'paths': [src]});
28 assert.deepEqual(doc.options.paths, [src]);
29 assert.equal(doc.options.extensions, '.js');
30 assert.equal(doc.options.cwd, path.join(__dirname, '..'));
31 assert.equal(doc.options.dest, path.join(__dirname, '../out'));
32 assert.equal(doc.options.theme, path.join(__dirname, '../themes/default'));
33 assert.equal(doc.options.syntaxtype, 'js');
34 assert.ok(doc.options.project);
35 assert.ok(doc.options.excludes);
36 });
37
38 it('should call build', function (next) {
39 var stub = sinon.stub(builder, 'compile');
40 var doc = Firedoc({'paths': [src]});
41 stub.callsArg(2);
42 doc.build(function () {
43 var arg = stub.args[0];
44 var ast = arg[0];
45 var options = arg[1];
46 assert.deepEqual(ast, require('../lib/ast').AST);
47 assert.deepEqual(options.paths, [src]);
48 assert.deepEqual(options.excludes, [
49 '.git',
50 '.svn',
51 'CVS',
52 'build_rollup_tmp',
53 'build_tmp',
54 'node_modules'
55 ]);
56 stub.restore();
57 next();
58 });
59 });
60
61 it('parse only', function (next) {
62 var doc = Firedoc({
63 'path': src,
64 'parseOnly': true
65 });
66 doc.build(function (err, ast, options) {
67 assert.deepEqual(ast, require('../lib/ast').AST);
68 assert.deepEqual(options.path, src);
69 next();
70 });
71 });
72
73 it('lint', function (next) {
74 var doc = Firedoc({
75 'path': path.join(__dirname, './targets/warnings'),
76 'lint': true
77 });
78 doc.build(function (err) {
79 assert.ok(err.length);
80 next();
81 });
82 });
83
84});
\No newline at end of file