Server IP : 66.29.132.122 / Your IP : 18.225.234.108 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/alt/alt-nodejs9/root/usr/lib/node_modules/npm/node_modules/cli-table2/lib/ |
Upload File : |
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('![table image](https://cdn.rawgit.com/jamestalmage/cli-table2/' + commitHash + '/examples/screenshots/' + image + '.png)'); } ); 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 };