Skip to content

Commit

Permalink
Use tap for running tests
Browse files Browse the repository at this point in the history
  • Loading branch information
isaacs committed Sep 15, 2015
1 parent d2f640d commit a98d857
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 50 deletions.
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -6,7 +6,7 @@
"main": "lib/sax.js",
"license": "ISC",
"scripts": {
"test": "tap test/index.js"
"test": "tap test/*.js"
},
"repository": "git://github.com/isaacs/sax-js.git",
"files": [
Expand Down
4 changes: 2 additions & 2 deletions test/end_empty_stream.js
@@ -1,5 +1,5 @@
var assert = require('assert');
var tap = require('tap');
var saxStream = require('../lib/sax').createStream();
assert.doesNotThrow(function() {
tap.doesNotThrow(function() {
saxStream.end();
});
49 changes: 7 additions & 42 deletions test/index.js
@@ -1,10 +1,11 @@
var globalsBefore = JSON.stringify(Object.keys(global))
, util = require("util")
, assert = require("assert")
, fs = require("fs")
, path = require("path")
, sax = require("../lib/sax")

var t = require('tap')

exports.sax = sax

// handy way to do simple unit tests
Expand All @@ -22,17 +23,17 @@ exports.test = function test (options) {
, actual: [ev, n] })
}
if (e >= expect.length && (ev === "end" || ev === "ready")) return
assert.ok( e < expect.length,
t.ok( e < expect.length,
"expectation #"+e+" "+util.inspect(expect[e])+"\n"+
"Unexpected event: "+ev+" "+(n ? util.inspect(n) : ""))
var inspected = n instanceof Error ? "\n"+ n.message : util.inspect(n)
assert.equal(ev, expect[e][0],
t.equal(ev, expect[e][0],
"expectation #"+e+"\n"+
"Didn't get expected event\n"+
"expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+
"actual: "+ev+" "+inspected+"\n")
if (ev === "error") assert.equal(n.message, expect[e][1])
else assert.deepEqual(n, expect[e][1],
if (ev === "error") t.equal(n.message, expect[e][1])
else t.deepEqual(n, expect[e][1],
"expectation #"+e+"\n"+
"Didn't get expected argument\n"+
"expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+
Expand All @@ -46,41 +47,5 @@ exports.test = function test (options) {
}

if (module === require.main) {
var running = true
, failures = 0

function fail (file, er) {
util.error("Failed: "+file)
util.error(er.stack || er.message)
failures ++
}

fs.readdir(__dirname, function (error, files) {
files = files.filter(function (file) {
return (/\.js$/.exec(file) && file !== 'index.js')
})
var n = files.length
, i = 0
console.log("1.." + n)
files.forEach(function (file) {
// run this test.
try {
require(path.resolve(__dirname, file))
var globalsAfter = JSON.stringify(Object.keys(global))
if (globalsAfter !== globalsBefore) {
var er = new Error("new globals introduced\n"+
"expected: "+globalsBefore+"\n"+
"actual: "+globalsAfter)
globalsBefore = globalsAfter
throw er
}
console.log("ok " + (++i) + " - " + file)
} catch (er) {
console.log("not ok "+ (++i) + " - " + file)
fail(file, er)
}
})
if (!failures) return console.log("#all pass")
else return console.error(failures + " failure" + (failures > 1 ? "s" : ""))
})
t.pass('common test file')
}
4 changes: 2 additions & 2 deletions test/parser-position.js
@@ -1,12 +1,12 @@
var sax = require("../lib/sax"),
assert = require("assert")
tap = require("tap")

function testPosition(chunks, expectedEvents) {
var parser = sax.parser();
expectedEvents.forEach(function(expectation) {
parser['on' + expectation[0]] = function() {
for (var prop in expectation[1]) {
assert.equal(parser[prop], expectation[1][prop]);
tap.equal(parser[prop], expectation[1][prop]);
}
}
});
Expand Down
6 changes: 3 additions & 3 deletions test/utf8-split.js
@@ -1,10 +1,10 @@
var assert = require('assert')
var tap = require('tap')
var saxStream = require('../lib/sax').createStream()

var b = new Buffer('误')

saxStream.on('text', function(text) {
assert.equal(text, b.toString())
tap.equal(text, b.toString())
})

saxStream.write(new Buffer('<test><a>'))
Expand All @@ -22,7 +22,7 @@ saxStream.end(Buffer.concat([b.slice(1), new Buffer('</d></test>')]))
var saxStream2 = require('../lib/sax').createStream()

saxStream2.on('text', function(text) {
assert.equal(text, '�')
tap.equal(text, '�')
});

saxStream2.write(new Buffer('<root>'));
Expand Down

0 comments on commit a98d857

Please sign in to comment.