1 |
|
2 |
|
3 | const _ = require('underscore');
|
4 | const path = require('path');
|
5 | const assert = require('assert');
|
6 | const sinon = require('sinon');
|
7 | const builder = require('../lib/builder');
|
8 | const Firedoc = require('../lib/firedoc').Firedoc;
|
9 |
|
10 | describe('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 |