Skip to content
This repository has been archived by the owner on Feb 23, 2021. It is now read-only.

Commit

Permalink
More tests
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewdeandrade committed Nov 25, 2014
1 parent e422e06 commit d559394
Show file tree
Hide file tree
Showing 16 changed files with 1,408 additions and 27 deletions.
3 changes: 1 addition & 2 deletions lint-stream.js
Expand Up @@ -117,8 +117,7 @@ function lintTrapStream(linters) {
return function lint(files, opts) {
files.sort();
var streams = linters.map(function initLinter(linterName) {
var stream = lintStream(linterName, files, opts);
return stream;
return lintStream(linterName, files, opts);
});

var mergedLintStream = es.merge.apply(es, streams);
Expand Down
2 changes: 2 additions & 0 deletions package.json
Expand Up @@ -53,6 +53,8 @@
"array.prototype.find": "^1.0.0",
"istanbul": "^0.3.2",
"mkdirp": "^0.5.0",
"mock-fs": "^2.3.2",
"opn": "^1.0.0",
"pre-commit": "0.0.9",
"rimraf": "^2.2.8",
"tape": "~3.0.0",
Expand Down
1 change: 1 addition & 0 deletions stylish-reporter.js
Expand Up @@ -56,6 +56,7 @@ function printFileErrorTable(message) {
}

function printStylish(fileMessages) {
isTTY = process.stdout.isTTY;
fileMessages = fileMessages.filter(removeEmpty);

function removeEmpty(fileMessage) {
Expand Down
18 changes: 14 additions & 4 deletions test/attenuate-severity.tape.js
Expand Up @@ -3,21 +3,31 @@ var test = require('tape');
var attenuateSeverity = require('../attenuate-severity');

test('attenuate severity in single file with single lintrc', function tape(t) {
t.plan(1);
t.plan(2);

var lintrc = {
eslint: {
'func-names': false
}
};

var message = {
var messageA = {
type: 'error',
linter: 'eslint',
rule: 'func-names',
severity: 'error'
};

attenuateSeverity(message, lintrc);
t.equal(message.type, 'warning', 'Downgraded severity to warning');
attenuateSeverity(messageA, lintrc);
t.equal(messageA.type, 'warning', 'Downgraded severity to warning');

var messageB = {
type: 'error',
linter: 'eslint',
rule: 'not-func-names',
severity: 'error'
};

attenuateSeverity(messageB, lintrc);
t.equal(messageB.type, 'error', 'Did not downgrade severity to warning');
});
19 changes: 18 additions & 1 deletion test/checkstyle-reporter.tape.js
@@ -1,8 +1,25 @@
'use strict';
var test = require('tape');
var checkstyleReporter = require('../checkstyle-reporter');
var makeFileErrorStream = require('./helpers/make-file-error-stream');
var es = require('event-stream');
var fs = require('fs');
var path = require('path');

test('Checkstyle Reporter', function runTests(t) {
t.plan(1);
t.plan(2);
t.ok(checkstyleReporter, 'Module exists');

var fixture = path.join(__dirname, 'fixtures/unit/checkstyle.stdout');

var expectedStdout = fs.readFileSync(fixture).toString();

makeFileErrorStream().pipe(es.writeArray(function print(err, array) {
if (err) {
t.fail();
}

t.equal(checkstyleReporter(array), expectedStdout, 'Correct stdout');
}));

});
18 changes: 17 additions & 1 deletion test/compact-reporter.tape.js
@@ -1,8 +1,24 @@
'use strict';
var test = require('tape');
var compactReporter = require('../compact-reporter');
var makeFileErrorStream = require('./helpers/make-file-error-stream');
var es = require('event-stream');
var fs = require('fs');
var path = require('path');

test('Compact Reporter', function runTests(t) {
t.plan(1);
t.plan(2);
t.ok(compactReporter, 'Module exists');

var fixture = path.join(__dirname, 'fixtures/unit/compact.stdout');

var expectedStdout = fs.readFileSync(fixture).toString();

makeFileErrorStream().pipe(es.writeArray(function print(err, array) {
if (err) {
t.fail();
}
t.equal(compactReporter(array), expectedStdout, 'Correct stdout');
}));

});
133 changes: 133 additions & 0 deletions test/fixtures/unit/checkstyle.stdout
@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
<file name="a.js">
<error line="0" column="0" severity="warning" message="no-alert message" source="eslint.no-alert" />
<error line="0" column="0" severity="warning" message="indent message" source="jshint.indent" />
<error line="0" column="0" severity="warning" message="validateIndentation message" source="jscs.validateIndentation" />
</file>
<file name="b.js">
<error line="1" column="1" severity="error" message="no-array-constructor message" source="eslint.no-array-constructor" />
<error line="1" column="1" severity="error" message="undef message" source="jshint.undef" />
<error line="1" column="1" severity="error" message="maximumLineLength message" source="jscs.maximumLineLength" />
</file>
<file name="c.js">
<error line="2" column="2" severity="warning" message="no-bitwise message" source="eslint.no-bitwise" />
<error line="2" column="2" severity="warning" message="validthis message" source="jshint.validthis" />
<error line="2" column="2" severity="warning" message="requireSpaceAfterKeywords message" source="jscs.requireSpaceAfterKeywords" />
</file>
<file name="d.js">
<error line="3" column="3" severity="error" message="no-caller message" source="eslint.no-caller" />
<error line="3" column="3" severity="error" message="newcap message" source="jshint.newcap" />
<error line="3" column="3" severity="error" message="disallowSpacesInFunctionDeclaration message" source="jscs.disallowSpacesInFunctionDeclaration" />
</file>
<file name="e.js">
<error line="4" column="4" severity="warning" message="no-catch-shadow message" source="eslint.no-catch-shadow" />
<error line="4" column="4" severity="warning" message="indent message" source="jshint.indent" />
<error line="4" column="4" severity="warning" message="disallowSpacesInNamedFunctionExpression message" source="jscs.disallowSpacesInNamedFunctionExpression" />
</file>
<file name="f.js">
<error line="5" column="5" severity="error" message="no-comma-dangle message" source="eslint.no-comma-dangle" />
<error line="5" column="5" severity="error" message="undef message" source="jshint.undef" />
<error line="5" column="5" severity="error" message="requireSpacesInFunctionDeclaration message" source="jscs.requireSpacesInFunctionDeclaration" />
</file>
<file name="g.js">
<error line="6" column="6" severity="warning" message="no-cond-assign message" source="eslint.no-cond-assign" />
<error line="6" column="6" severity="warning" message="validthis message" source="jshint.validthis" />
<error line="6" column="6" severity="warning" message="requireSpacesInNamedFunctionExpression message" source="jscs.requireSpacesInNamedFunctionExpression" />
</file>
<file name="h.js">
<error line="7" column="7" severity="error" message="no-console message" source="eslint.no-console" />
<error line="7" column="7" severity="error" message="newcap message" source="jshint.newcap" />
<error line="7" column="7" severity="error" message="disallowTrailingComma message" source="jscs.disallowTrailingComma" />
</file>
<file name="i.js">
<error line="8" column="8" severity="warning" message="no-constant-condition message" source="eslint.no-constant-condition" />
<error line="8" column="8" severity="warning" message="indent message" source="jshint.indent" />
<error line="8" column="8" severity="warning" message="requireBlocksOnNewline message" source="jscs.requireBlocksOnNewline" />
</file>
<file name="j.js">
<error line="9" column="9" severity="error" message="no-control-regex message" source="eslint.no-control-regex" />
<error line="9" column="9" severity="error" message="undef message" source="jshint.undef" />
<error line="9" column="9" severity="error" message="excludeFiles message" source="jscs.excludeFiles" />
</file>
<file name="k.js">
<error line="10" column="10" severity="warning" message="no-debugger message" source="eslint.no-debugger" />
<error line="10" column="10" severity="warning" message="validthis message" source="jshint.validthis" />
<error line="10" column="10" severity="warning" message="requireCurlyBraces message" source="jscs.requireCurlyBraces" />
</file>
<file name="l.js">
<error line="11" column="11" severity="error" message="no-delete-var message" source="eslint.no-delete-var" />
<error line="11" column="11" severity="error" message="newcap message" source="jshint.newcap" />
<error line="11" column="11" severity="error" message="disallowMultipleVarDecl message" source="jscs.disallowMultipleVarDecl" />
</file>
<file name="m.js">
<error line="12" column="12" severity="warning" message="no-div-regex message" source="eslint.no-div-regex" />
<error line="12" column="12" severity="warning" message="indent message" source="jshint.indent" />
<error line="12" column="12" severity="warning" message="disallowEmptyBlocks message" source="jscs.disallowEmptyBlocks" />
</file>
<file name="n.js">
<error line="13" column="13" severity="error" message="no-dupe-keys message" source="eslint.no-dupe-keys" />
<error line="13" column="13" severity="error" message="undef message" source="jshint.undef" />
<error line="13" column="13" severity="error" message="disallowSpaceAfterObjectKeys message" source="jscs.disallowSpaceAfterObjectKeys" />
</file>
<file name="o.js">
<error line="14" column="14" severity="warning" message="no-else-return message" source="eslint.no-else-return" />
<error line="14" column="14" severity="warning" message="validthis message" source="jshint.validthis" />
<error line="14" column="14" severity="warning" message="requireCommaBeforeLineBreak message" source="jscs.requireCommaBeforeLineBreak" />
</file>
<file name="p.js">
<error line="15" column="15" severity="error" message="no-empty message" source="eslint.no-empty" />
<error line="15" column="15" severity="error" message="newcap message" source="jshint.newcap" />
<error line="15" column="15" severity="error" message="requireSpaceBeforeBinaryOperators message" source="jscs.requireSpaceBeforeBinaryOperators" />
</file>
<file name="q.js">
<error line="16" column="16" severity="warning" message="no-empty-class message" source="eslint.no-empty-class" />
<error line="16" column="16" severity="warning" message="indent message" source="jshint.indent" />
<error line="16" column="16" severity="warning" message="requireSpacesInConditionalExpression message" source="jscs.requireSpacesInConditionalExpression" />
</file>
<file name="r.js">
<error line="17" column="17" severity="error" message="no-empty-label message" source="eslint.no-empty-label" />
<error line="17" column="17" severity="error" message="undef message" source="jshint.undef" />
<error line="17" column="17" severity="error" message="requireSpaceAfterBinaryOperators message" source="jscs.requireSpaceAfterBinaryOperators" />
</file>
<file name="s.js">
<error line="18" column="18" severity="warning" message="no-eq-null message" source="eslint.no-eq-null" />
<error line="18" column="18" severity="warning" message="validthis message" source="jshint.validthis" />
<error line="18" column="18" severity="warning" message="disallowSpaceAfterPrefixUnaryOperators message" source="jscs.disallowSpaceAfterPrefixUnaryOperators" />
</file>
<file name="t.js">
<error line="19" column="19" severity="error" message="no-eval message" source="eslint.no-eval" />
<error line="19" column="19" severity="error" message="newcap message" source="jshint.newcap" />
<error line="19" column="19" severity="error" message="disallowKeywords message" source="jscs.disallowKeywords" />
</file>
<file name="u.js">
<error line="20" column="20" severity="warning" message="no-ex-assign message" source="eslint.no-ex-assign" />
<error line="20" column="20" severity="warning" message="indent message" source="jshint.indent" />
<error line="20" column="20" severity="warning" message="disallowMultipleLineBreaks message" source="jscs.disallowMultipleLineBreaks" />
</file>
<file name="v.js">
<error line="21" column="21" severity="error" message="no-extend-native message" source="eslint.no-extend-native" />
<error line="21" column="21" severity="error" message="undef message" source="jshint.undef" />
<error line="21" column="21" severity="error" message="validateLineBreaks message" source="jscs.validateLineBreaks" />
</file>
<file name="w.js">
<error line="22" column="22" severity="warning" message="no-extra-bind message" source="eslint.no-extra-bind" />
<error line="22" column="22" severity="warning" message="validthis message" source="jshint.validthis" />
<error line="22" column="22" severity="warning" message="validateQuoteMarks message" source="jscs.validateQuoteMarks" />
</file>
<file name="x.js">
<error line="23" column="23" severity="error" message="no-extra-boolean-cast message" source="eslint.no-extra-boolean-cast" />
<error line="23" column="23" severity="error" message="newcap message" source="jshint.newcap" />
<error line="23" column="23" severity="error" message="disallowMixedSpacesAndTabs message" source="jscs.disallowMixedSpacesAndTabs" />
</file>
<file name="y.js">
<error line="24" column="24" severity="warning" message="no-extra-parens message" source="eslint.no-extra-parens" />
<error line="24" column="24" severity="warning" message="indent message" source="jshint.indent" />
<error line="24" column="24" severity="warning" message="disallowTrailingWhitespace message" source="jscs.disallowTrailingWhitespace" />
</file>
<file name="z.js">
<error line="25" column="25" severity="error" message="no-extra-semi message" source="eslint.no-extra-semi" />
<error line="25" column="25" severity="error" message="undef message" source="jshint.undef" />
<error line="25" column="25" severity="error" message="disallowKeywordsOnNewLine message" source="jscs.disallowKeywordsOnNewLine" />
</file>
</checkstyle>
78 changes: 78 additions & 0 deletions test/fixtures/unit/compact.stdout
@@ -0,0 +1,78 @@
a.js: line 0, col 0, Warning - no-alert message (eslint.no-alert)
a.js: line 0, col 0, Warning - indent message (jshint.indent)
a.js: line 0, col 0, Warning - validateIndentation message (jscs.validateIndentation)
b.js: line 1, col 1, Error - no-array-constructor message (eslint.no-array-constructor)
b.js: line 1, col 1, Error - undef message (jshint.undef)
b.js: line 1, col 1, Error - maximumLineLength message (jscs.maximumLineLength)
c.js: line 2, col 2, Warning - no-bitwise message (eslint.no-bitwise)
c.js: line 2, col 2, Warning - validthis message (jshint.validthis)
c.js: line 2, col 2, Warning - requireSpaceAfterKeywords message (jscs.requireSpaceAfterKeywords)
d.js: line 3, col 3, Error - no-caller message (eslint.no-caller)
d.js: line 3, col 3, Error - newcap message (jshint.newcap)
d.js: line 3, col 3, Error - disallowSpacesInFunctionDeclaration message (jscs.disallowSpacesInFunctionDeclaration)
e.js: line 4, col 4, Warning - no-catch-shadow message (eslint.no-catch-shadow)
e.js: line 4, col 4, Warning - indent message (jshint.indent)
e.js: line 4, col 4, Warning - disallowSpacesInNamedFunctionExpression message (jscs.disallowSpacesInNamedFunctionExpression)
f.js: line 5, col 5, Error - no-comma-dangle message (eslint.no-comma-dangle)
f.js: line 5, col 5, Error - undef message (jshint.undef)
f.js: line 5, col 5, Error - requireSpacesInFunctionDeclaration message (jscs.requireSpacesInFunctionDeclaration)
g.js: line 6, col 6, Warning - no-cond-assign message (eslint.no-cond-assign)
g.js: line 6, col 6, Warning - validthis message (jshint.validthis)
g.js: line 6, col 6, Warning - requireSpacesInNamedFunctionExpression message (jscs.requireSpacesInNamedFunctionExpression)
h.js: line 7, col 7, Error - no-console message (eslint.no-console)
h.js: line 7, col 7, Error - newcap message (jshint.newcap)
h.js: line 7, col 7, Error - disallowTrailingComma message (jscs.disallowTrailingComma)
i.js: line 8, col 8, Warning - no-constant-condition message (eslint.no-constant-condition)
i.js: line 8, col 8, Warning - indent message (jshint.indent)
i.js: line 8, col 8, Warning - requireBlocksOnNewline message (jscs.requireBlocksOnNewline)
j.js: line 9, col 9, Error - no-control-regex message (eslint.no-control-regex)
j.js: line 9, col 9, Error - undef message (jshint.undef)
j.js: line 9, col 9, Error - excludeFiles message (jscs.excludeFiles)
k.js: line 10, col 10, Warning - no-debugger message (eslint.no-debugger)
k.js: line 10, col 10, Warning - validthis message (jshint.validthis)
k.js: line 10, col 10, Warning - requireCurlyBraces message (jscs.requireCurlyBraces)
l.js: line 11, col 11, Error - no-delete-var message (eslint.no-delete-var)
l.js: line 11, col 11, Error - newcap message (jshint.newcap)
l.js: line 11, col 11, Error - disallowMultipleVarDecl message (jscs.disallowMultipleVarDecl)
m.js: line 12, col 12, Warning - no-div-regex message (eslint.no-div-regex)
m.js: line 12, col 12, Warning - indent message (jshint.indent)
m.js: line 12, col 12, Warning - disallowEmptyBlocks message (jscs.disallowEmptyBlocks)
n.js: line 13, col 13, Error - no-dupe-keys message (eslint.no-dupe-keys)
n.js: line 13, col 13, Error - undef message (jshint.undef)
n.js: line 13, col 13, Error - disallowSpaceAfterObjectKeys message (jscs.disallowSpaceAfterObjectKeys)
o.js: line 14, col 14, Warning - no-else-return message (eslint.no-else-return)
o.js: line 14, col 14, Warning - validthis message (jshint.validthis)
o.js: line 14, col 14, Warning - requireCommaBeforeLineBreak message (jscs.requireCommaBeforeLineBreak)
p.js: line 15, col 15, Error - no-empty message (eslint.no-empty)
p.js: line 15, col 15, Error - newcap message (jshint.newcap)
p.js: line 15, col 15, Error - requireSpaceBeforeBinaryOperators message (jscs.requireSpaceBeforeBinaryOperators)
q.js: line 16, col 16, Warning - no-empty-class message (eslint.no-empty-class)
q.js: line 16, col 16, Warning - indent message (jshint.indent)
q.js: line 16, col 16, Warning - requireSpacesInConditionalExpression message (jscs.requireSpacesInConditionalExpression)
r.js: line 17, col 17, Error - no-empty-label message (eslint.no-empty-label)
r.js: line 17, col 17, Error - undef message (jshint.undef)
r.js: line 17, col 17, Error - requireSpaceAfterBinaryOperators message (jscs.requireSpaceAfterBinaryOperators)
s.js: line 18, col 18, Warning - no-eq-null message (eslint.no-eq-null)
s.js: line 18, col 18, Warning - validthis message (jshint.validthis)
s.js: line 18, col 18, Warning - disallowSpaceAfterPrefixUnaryOperators message (jscs.disallowSpaceAfterPrefixUnaryOperators)
t.js: line 19, col 19, Error - no-eval message (eslint.no-eval)
t.js: line 19, col 19, Error - newcap message (jshint.newcap)
t.js: line 19, col 19, Error - disallowKeywords message (jscs.disallowKeywords)
u.js: line 20, col 20, Warning - no-ex-assign message (eslint.no-ex-assign)
u.js: line 20, col 20, Warning - indent message (jshint.indent)
u.js: line 20, col 20, Warning - disallowMultipleLineBreaks message (jscs.disallowMultipleLineBreaks)
v.js: line 21, col 21, Error - no-extend-native message (eslint.no-extend-native)
v.js: line 21, col 21, Error - undef message (jshint.undef)
v.js: line 21, col 21, Error - validateLineBreaks message (jscs.validateLineBreaks)
w.js: line 22, col 22, Warning - no-extra-bind message (eslint.no-extra-bind)
w.js: line 22, col 22, Warning - validthis message (jshint.validthis)
w.js: line 22, col 22, Warning - validateQuoteMarks message (jscs.validateQuoteMarks)
x.js: line 23, col 23, Error - no-extra-boolean-cast message (eslint.no-extra-boolean-cast)
x.js: line 23, col 23, Error - newcap message (jshint.newcap)
x.js: line 23, col 23, Error - disallowMixedSpacesAndTabs message (jscs.disallowMixedSpacesAndTabs)
y.js: line 24, col 24, Warning - no-extra-parens message (eslint.no-extra-parens)
y.js: line 24, col 24, Warning - indent message (jshint.indent)
y.js: line 24, col 24, Warning - disallowTrailingWhitespace message (jscs.disallowTrailingWhitespace)
z.js: line 25, col 25, Error - no-extra-semi message (eslint.no-extra-semi)
z.js: line 25, col 25, Error - undef message (jshint.undef)
z.js: line 25, col 25, Error - disallowKeywordsOnNewLine message (jscs.disallowKeywordsOnNewLine)

0 comments on commit d559394

Please sign in to comment.