Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /usr/share/nodejs/cli-table2/lib/ drwxr-xr-x | |
| Viewing file: Select action/file-type: var chai = require('chai');
var expect = chai.expect;
var colors = require('colors/safe');
var _ = require('lodash');
var fs = require('fs');
var git = require('git-rev');
function logExample(fn){
runPrintingExample(fn,
function logName(name){
console.log(colors.gray('========= ') + name + colors.gray(' ================'));
},
console.log, //logTable
console.log, //logCode
console.log, //logSeparator
identity //screenShot
)
}
function mdExample(fn,file,cb){
git.long(function(commitHash){
var buffer = [];
runPrintingExample(fn,
function logName(name){
buffer.push('##### ' + name);
},
function logTable(table){
//md files won't render color strings properly.
table = stripColors(table);
// indent table so is displayed preformatted text
table = ' ' + (table.split('\n').join('\n '));
buffer.push(table);
},
function logCode(code){
buffer.push('```javascript');
buffer.push(stripColors(code));
buffer.push('```');
},
function logSeparator(sep){
buffer.push(stripColors(sep));
},
function logScreenShot(image){
buffer.push('');
}
);
fs.writeFileSync(file,buffer.join('\n'));
if(cb){cb();}
});
}
/**
* Actually runs the tests and verifies the functions create the expected output.
* @param name of the test suite, used in the mocha.describe call.
* @param fn a function which creates the test suite.
*/
function runTest(name,fn){
function testExample(name,fn,expected){
it(name,function(){
expect(fn().toString()).to.equal(expected.join('\n'));
});
}
describe(name,function () {
fn(testExample,identity);
});
}
/**
* Common execution for runs that print output (either to console or to a Markdown file);
* @param fn - a function containing the tests/demos.
* @param logName - callback to print the name of this test to the console or file.
* @param logTable - callback to print the output of the table to the console or file.
* @param logCode - callback to print the output of the table to the console or file.
* @param logSeparator - callback to print extra whitespace between demos.
* @param logScreenShot - write out a link to the screenShot image.
*/
function runPrintingExample(fn,logName,logTable,logCode,logSeparator,logScreenShot){
/**
* Called by every test/demo
* @param name - the name of this test.
* @param makeTable - a function which builds the table under test. Also, The contents of this function will be printed.
* @param expected - The expected result.
* @param screenshot - If present, there is an image containing a screenshot of the output
*/
function printExample(name,makeTable,expected,screenshot){
var code = makeTable.toString().split('\n').slice(1,-2).join('\n');
logName(name);
if(screenshot && logScreenShot){
logScreenShot(screenshot);
}
else {
logTable(makeTable().toString());
}
logCode(code);
logSeparator('\n');
}
fn(printExample);
}
// removes all the color characters from a string
function stripColors(str){
return str.split( /\u001b\[(?:\d*;){0,5}\d*m/g).join('');
}
// returns the first arg - used as snapshot function
function identity(str){
return str;
}
module.exports = {
mdExample:mdExample,
logExample:logExample,
runTest:runTest
}; |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0031 ]-- |