| var tap = require('tap'); |
| var spawn = require('child_process').spawn; |
| var concat = require('concat-stream'); |
| |
| tap.test('requiring a single module', function (t) { |
| t.plan(2); |
| |
| var tc = function (rows) { |
| t.same(rows.toString('utf8'), [ |
| 'TAP version 13', |
| '# module-a', |
| 'ok 1 loaded module a', |
| '# test-a', |
| 'ok 2 module-a loaded in same context', |
| 'ok 3 test ran after module-a was loaded', |
| '', |
| '1..3', |
| '# tests 3', |
| '# pass 3', |
| '', |
| '# ok' |
| ].join('\n') + '\n\n'); |
| }; |
| |
| var ps = tape('-r ./require/a require/test-a.js'); |
| ps.stdout.pipe(concat(tc)); |
| ps.on('exit', function (code) { |
| t.equal(code, 0); |
| }); |
| }); |
| |
| tap.test('requiring multiple modules', function (t) { |
| t.plan(2); |
| |
| var tc = function (rows) { |
| t.same(rows.toString('utf8'), [ |
| 'TAP version 13', |
| '# module-a', |
| 'ok 1 loaded module a', |
| '# module-b', |
| 'ok 2 loaded module b', |
| '# test-a', |
| 'ok 3 module-a loaded in same context', |
| 'ok 4 test ran after module-a was loaded', |
| '# test-b', |
| 'ok 5 module-b loaded in same context', |
| 'ok 6 test ran after module-b was loaded', |
| '', |
| '1..6', |
| '# tests 6', |
| '# pass 6', |
| '', |
| '# ok' |
| ].join('\n') + '\n\n'); |
| }; |
| |
| var ps = tape('-r ./require/a -r ./require/b require/test-a.js require/test-b.js'); |
| ps.stdout.pipe(concat(tc)); |
| ps.on('exit', function (code) { |
| t.equal(code, 0); |
| }); |
| }); |
| |
| function tape(args) { |
| var proc = require('child_process') |
| var bin = __dirname + '/../bin/tape' |
| |
| return proc.spawn('node', [bin].concat(args.split(' ')), { cwd: __dirname }) |
| } |