Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/share/.cache/yarn/v6/npm-tap-spec-5.0.0-integrity/node_modules/tap-spec/test/e2e/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
var test = require('tapes');
var fs = require('fs');
var _ = require('lodash');
var path = require('path');
var okTestPath = path.resolve(__dirname, '..', 'fixtures', 'ok.txt');
var notOkTestPath = path.resolve(__dirname, '..', 'fixtures', 'not-ok.txt');
var format = require('chalk');
var symbols = {
ok: '\u2713',
err: '\u2717'
};
var tapSpec = null;
var actual = null;
test('e2e test', function(t) {
t.beforeEach(function(t) {
actual = '';
tapSpec = require('../../')();
t.end();
});
t.test('ok test output', function(t) {
t.plan(1);
var testOutStream = fs.createReadStream(okTestPath);
var expected = ' '.repeat(2) + 'beep\n' +
' '.repeat(4) + format.green(symbols.ok) + ' ' + format.gray('should be equal') + '\n' +
' '.repeat(4) + format.green(symbols.ok) + ' ' + format.gray('should be equivalent') + '\n' +
' '.repeat(2) + 'boop\n' +
' '.repeat(4) + format.green(symbols.ok) + ' ' + format.gray('should be equal') + '\n' +
' '.repeat(4) + format.green(symbols.ok) + ' ' + format.gray('(unnamed assert)') + '\n' +
' '.repeat(2) + 'total:' + ' '.repeat(5) + '4\n' +
format.green(' '.repeat(2) + 'passing:' + ' '.repeat(3) + 4) + '\n' +
' '.repeat(2) + format.green.bold('All tests pass!');
testOutStream.pipe(tapSpec);
tapSpec.on('data', function(data) {
actual += data.toString();
});
testOutStream.on('end', function() {
t.deepEqual(normalize(actual, 1), expected, 'Format ok-test output.');
});
});
t.test('not ok test output', function(t) {
t.plan(1);
var testOutStream = fs.createReadStream(notOkTestPath);
var expected = ' '.repeat(2) + 'THIS IS A SUITE\n' +
' '.repeat(2) + 'test 1\n' +
' '.repeat(4) + format.green(symbols.ok) + ' ' + format.gray('this test should pass') + '\n' +
' '.repeat(2) + 'test 2\n' +
' '.repeat(4) + format.red(symbols.err) + ' ' + format.gray('this test should fail') + '\n' +
' '.repeat(3) + format.yellow(' ---') + '\n' +
' '.repeat(3) + format.yellow(' operator: ok') + '\n' +
' '.repeat(3) + format.yellow(' expected: true') + '\n' +
' '.repeat(3) + format.yellow(' actual: false') + '\n' +
' '.repeat(3) + format.yellow(' at: Test.<anonymous> (/Users/khanh.nguyen/tap-spec/test.js:13:15)') + '\n' +
' '.repeat(3) + format.yellow(' ...') + '\n' +
' '.repeat(2) + format.red.bold('Failed Tests: ') + 'There was ' + format.red.bold(1) + ' failure\n' +
' '.repeat(4) + '3) test 2\n' +
' '.repeat(6) + format.red(symbols.err) + ' ' + format.red('this test should fail') + '\n' +
' '.repeat(2) + 'total:' + ' '.repeat(5) + '2\n' +
format.green(' '.repeat(2) + 'passing:' + ' '.repeat(3) + 1) + '\n' +
format.red(' '.repeat(2) + 'failing:' + ' '.repeat(3) + 1);
testOutStream.pipe(tapSpec);
tapSpec.on('data', function(data) {
actual += data.toString();
});
testOutStream.on('end', function() {
t.deepEqual(normalize(actual, 0), expected, 'Format fail-test output.');
});
});
t.end();
});
// remove empty lines and 'duration ...' line
// durationLinePos is the position of 'duration ...' line counting from the last line.
function normalize(data, durationLinePos) {
var noEmptyLine = _.filter(data.split('\n'), function(line) { return line.trim().length !== 0; });
noEmptyLine.splice(noEmptyLine.length - durationLinePos - 1, 1);
return noEmptyLine.join('\n');
}
String.prototype.repeat = function(n) {
return new Array(n + 1).join(this);
}
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0099 ]-- |