Skip to content

Commit 133057d

Browse files
committed
Add parse API unit tests
- Refs #338
1 parent 9467577 commit 133057d

File tree

5 files changed

+81
-30
lines changed

5 files changed

+81
-30
lines changed

Makefile

+5-7
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@ dist:
1818
lint: .jshintrc
1919
jshint bin/sassdoc index.js src test
2020

21+
.jshintrc: .jshintrc.yaml
22+
js-yaml $< > $@
23+
2124
test: test/data/expected.stream.json dist
22-
mocha test/annotations/*.test.js
23-
mocha test/env/*.test.js test/utils/*.test.js
24-
rm -rf sassdoc && $(MOCHA) test/api/*.test.js
25+
$(MOCHA) test/**/*.test.js
2526
$(SASSDOC) --parse test/data/test.scss | diff - test/data/expected.json
2627
$(SASSDOC) --parse < test/data/test.scss | diff - test/data/expected.stream.json
2728
rm -rf sassdoc && $(SASSDOC) test/data/test.scss && [ -d sassdoc ]
@@ -30,9 +31,6 @@ test: test/data/expected.stream.json dist
3031
test/data/expected.stream.json: test/data/expected.json
3132
test/data/stream $< > $@
3233

33-
.jshintrc: .jshintrc.yaml
34-
js-yaml $< > $@
35-
3634
cover: dist
3735
rm -rf coverage
3836
istanbul cover --report none --print detail $(MOCHA) test/**/*.test.js
@@ -42,7 +40,7 @@ cover-browse: dist
4240
istanbul cover --report html $(MOCHA) test/**/*.test.js
4341
open coverage/index.html
4442

45-
travis: cover
43+
travis: lint cover
4644
istanbul report lcovonly
4745
(cat coverage/lcov.info | coveralls) || exit 0
4846
rm -rf coverage

test/annotations/envMock.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module.exports = {
2-
logger : {
3-
warn: function(){},
4-
log: function(){},
5-
error: function(){}
2+
logger: {
3+
warn: function () {},
4+
log: function () {},
5+
error: function () {},
66
}
77
};

test/api/documentize.test.js

+30-6
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,48 @@
11
'use strict';
22

3-
var assert = require('assert');
43
var fs = require('fs');
4+
var assert = require('assert');
55
var rimraf = require('rimraf');
66
var sassdoc = require('../../');
77

8+
function clean(done) {
9+
rimraf('sassdoc', done);
10+
}
11+
12+
function read(filePath) {
13+
return fs.readFileSync(filePath, 'utf8');
14+
}
15+
816
describe('#documentize', function () {
17+
before(clean);
18+
after(clean);
919

10-
before(function () {
20+
beforeEach(function () {
1121
return sassdoc('./test/data');
1222
});
1323

14-
after(function (done) {
15-
rimraf('sassdoc', done);
16-
});
17-
1824
it('should produce documentation files', function () {
1925
assert.ok(fs.existsSync('sassdoc'));
2026
assert.ok(fs.existsSync('sassdoc/index.html'));
2127
assert.ok(fs.existsSync('sassdoc/assets'));
2228
});
2329

2430
});
31+
32+
describe('#documentize-parse', function () {
33+
var expected = read('test/data/expected.json').trim();
34+
var result;
35+
36+
before(function () {
37+
return sassdoc.parse('test/data/test.scss')
38+
.then(function (data) {
39+
result = data;
40+
});
41+
});
42+
43+
it('should return a proper data Array', function () {
44+
assert.ok(Array.isArray(result));
45+
assert.strictEqual(expected, JSON.stringify(result, null, 2));
46+
});
47+
48+
});

test/api/stream.test.js

+34-8
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,25 @@ var vfs = require('vinyl-fs');
66
var rimraf = require('rimraf');
77
var sassdoc = require('../../');
88

9+
function clean(done) {
10+
rimraf('sassdoc', done);
11+
}
12+
13+
function read(filePath) {
14+
return fs.readFileSync(filePath, 'utf8');
15+
}
16+
917
describe('#stream', function () {
18+
before(clean);
19+
after(clean);
1020

11-
before(function () {
12-
var parse = sassdoc();
21+
beforeEach(function () {
22+
var stream = sassdoc();
1323

1424
vfs.src('./test/data/**/*.scss')
15-
.pipe(parse);
16-
17-
return parse.promise;
18-
});
25+
.pipe(stream);
1926

20-
after(function (done) {
21-
rimraf('sassdoc', done);
27+
return stream.promise;
2228
});
2329

2430
it('should produce documentation files', function () {
@@ -28,3 +34,23 @@ describe('#stream', function () {
2834
});
2935

3036
});
37+
38+
describe('#stream-parse', function () {
39+
var expected = read('test/data/expected.json').trim();
40+
var result;
41+
42+
before(function (done) {
43+
vfs.src('./test/data/**/*.scss')
44+
.pipe(sassdoc.parse())
45+
.on('data', function (data) {
46+
result = data;
47+
done();
48+
});
49+
});
50+
51+
it('should return a proper data Array', function () {
52+
assert.ok(Array.isArray(result));
53+
assert.strictEqual(expected, JSON.stringify(result, null, 2));
54+
});
55+
56+
});

test/env/logger.test.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ function debug(str) {
1717
return '\u001b[90m\xBB [DEBUG] ' + str + ' \u001b[39m\n';
1818
}
1919

20+
var noop = function () {};
21+
2022
describe('#logger', function () {
2123
var logger;
2224
var stderrWrite;
@@ -53,7 +55,7 @@ describe('#logger', function () {
5355
logger.debug('foo');
5456
logger.debug('foo', 'bar');
5557
logger.debug('%s %s', 'foo', 'bar', 'hop');
56-
logger.debug(function(){return 'foo bar hop hop';});
58+
logger.debug(function () { return 'foo bar hop hop'; });
5759

5860
// test logger.timeEnd()
5961
logger.time('label');
@@ -119,18 +121,19 @@ describe('#logger', function () {
119121
assert.deepEqual(Logger.empty.debug(), undefined);
120122
});
121123

122-
it('should have a function to check if a object is a logger', function () {
124+
it('should have a function to check if an object is a valid logger', function () {
123125
assert.ok(Logger.checkLogger(Logger.empty));
124126
assert.throws(function () {
125-
Logger.checkLogger({ log : function() {} });
127+
Logger.checkLogger({ log: noop });
126128
});
127129
assert.throws(function () {
128-
Logger.checkLogger({ log : function() {}, warn : function(){} });
130+
Logger.checkLogger({ log: noop, warn: noop });
129131
});
130-
assert.ok(Logger.checkLogger({ log : function() {}, warn : function(){}, error : function(){} }));
132+
assert.ok(Logger.checkLogger({ log: noop, warn: noop, error: noop }));
131133
});
132134

133135
after(function () {
134136
global.process.stderr.write = stderrWrite;
135137
});
138+
136139
});

0 commit comments

Comments
 (0)