var docast = require('../');
|
|
var assert = require('assert');
|
|
|
|
describe('docast', function(){
|
|
describe('#parse(filename)', function(){
|
|
it('should properly parse ./fixture/test1.js', function(){
|
|
var comments = docast.parse(__dirname + '/fixture/test1.js');
|
|
|
|
assert.equal(comments.length, 7);
|
|
|
|
var wrapper = comments[0];
|
|
assert.ok(~wrapper.doc.indexOf('wrapper'));
|
|
assert.equal(wrapper.name, null);
|
|
assert.deepEqual(wrapper.params, ['global']);
|
|
assert.deepEqual(wrapper.returns, []);
|
|
assert.deepEqual(wrapper.raises, []);
|
|
|
|
var func1 = comments[1];
|
|
assert.ok(~func1.doc.indexOf('func1'));
|
|
assert.equal(func1.name, 'func1');
|
|
assert.deepEqual(func1.params, ['arg1', 'arg2']);
|
|
assert.deepEqual(func1.returns, ['\'string\'']);
|
|
assert.deepEqual(func1.raises, ['Error']);
|
|
|
|
var func2 = comments[2];
|
|
assert.ok(~func2.doc.indexOf('func2'));
|
|
assert.equal(func2.name, 'func2');
|
|
assert.deepEqual(func2.params, ['arg1', 'arg2']);
|
|
assert.deepEqual(func2.returns, [5]);
|
|
assert.deepEqual(func2.raises, []);
|
|
|
|
var class1 = comments[3];
|
|
assert.ok(~class1.doc.indexOf('class1'));
|
|
assert.equal(class1.name, 'class1');
|
|
assert.deepEqual(class1.params, ['options']);
|
|
assert.deepEqual(class1.returns, []);
|
|
assert.deepEqual(class1.raises, []);
|
|
|
|
var class1_method1 = comments[4];
|
|
assert.ok(~class1_method1.doc.indexOf('class1.method1'));
|
|
assert.equal(class1_method1.name, 'method1');
|
|
assert.equal(class1_method1.class, 'class1');
|
|
assert.deepEqual(class1_method1.params, ['arg1']);
|
|
assert.deepEqual(class1_method1.returns, []);
|
|
assert.deepEqual(class1_method1.raises, []);
|
|
|
|
var class2 = comments[5];
|
|
assert.ok(~class2.doc.indexOf('class2'));
|
|
assert.equal(class2.name, 'class2');
|
|
assert.deepEqual(class2.params, ['options']);
|
|
assert.deepEqual(class2.returns, []);
|
|
assert.deepEqual(class2.raises, []);
|
|
|
|
var class2_method1 = comments[6];
|
|
assert.ok(~class2_method1.doc.indexOf('class2.method1'));
|
|
assert.equal(class2_method1.name, 'method1');
|
|
assert.equal(class2_method1.class, 'class2');
|
|
assert.deepEqual(class2_method1.params, ['arg1']);
|
|
assert.deepEqual(class2_method1.returns, []);
|
|
assert.deepEqual(class2_method1.raises, []);
|
|
});
|
|
|
|
it('should properly parse ./fixture/test2.js', function(){
|
|
var comments = docast.parse(__dirname + '/fixture/test2.js');
|
|
|
|
assert.equal(comments.length, 1);
|
|
|
|
var some = comments[0];
|
|
assert.ok(~some.doc.indexOf('This function is super cool and does all sorts of cool stuffs'));
|
|
assert.equal(some.name, 'some');
|
|
assert.deepEqual(some.params, ['cool', 'stuff']);
|
|
assert.deepEqual(some.returns, ['stuff', 'cool', 'null']);
|
|
assert.deepEqual(some.raises, ['Error']);
|
|
});
|
|
|
|
it('should properly parse ./fixture/test3.js', function(){
|
|
var comments = docast.parse(__dirname + '/fixture/test3.js');
|
|
|
|
assert.equal(comments.length, 1);
|
|
|
|
var raises = comments[0];
|
|
assert.ok(~raises.doc.indexOf('This function will raise some exceptions'));
|
|
assert.equal(raises.name, 'raises');
|
|
assert.deepEqual(raises.params, []);
|
|
assert.deepEqual(raises.returns, []);
|
|
assert.deepEqual(raises.raises, ['Error', '\'string\'', 'e', 'true', 'CustomError', 'CustomError']);
|
|
});
|
|
});
|
|
});
|