diff --git a/bin/jsio.js b/bin/jsio.js index 89507f0..c22933e 100644 --- a/bin/jsio.js +++ b/bin/jsio.js @@ -22,6 +22,9 @@ try { case "copy": jsiojs.copyFile(params[0], params[1]) break + case "show": + jsiojs.showFile(params[0]) + break default: console.error("Invalid command") break diff --git a/lib/jsiojs_core.js b/lib/jsiojs_core.js index 50f6056..417ec5b 100644 --- a/lib/jsiojs_core.js +++ b/lib/jsiojs_core.js @@ -35,6 +35,12 @@ exports.copyFile = function(source, destination){ fs.createReadStream(source).pipe(fs.createWriteStream(destination)); console.info('File '+source+' copied to '+destination+' with success !') } + +exports.showFile = function(fileName){ + checkJsFile(fileName) + checkFileExist(fileName) + fs.createReadStream(fileName).pipe(process.stdout); + } function checkJsFile(fileName){ if(fileName === undefined) diff --git a/test/jsiojs_core_test.js b/test/jsiojs_core_test.js index 82e34e0..2ccd4d2 100644 --- a/test/jsiojs_core_test.js +++ b/test/jsiojs_core_test.js @@ -289,6 +289,54 @@ describe('jsiojs', function() { }) +describe('jsiojs', function() { + describe('#showFile', function() { + it('Should show a javascript file', function() { + // Given + var fileName = generateFileName() + fs.writeFileSync(fileName,"") + fs.existsSync(fileName).should.be.true + // When + jsiojs.showFile(fileName) + // Then + fs.existsSync(fileName).should.be.true + }) + }) + + + describe('#showFile', function() { + it('Should fail when no fileName', function() { + // When + var fn = function(){ jsiojs.showFile() } + // Then + expect(fn).to.throw("file name is missing") + }) + }) + + describe('#showFile', function() { + it('Should fail when not a javascript file', function() { + // Given + var fileName = generateFileName()+".txt" + // When + var fn = function(){ jsiojs.showFile(fileName) } + // Then + expect(fn).to.throw(fileName+" is not a valid javascript file name") + + }) + }) + + describe('#showFile', function() { + it('Should fail when file does not exist', function() { + // Given + var fileName = generateFileName() + fs.existsSync(fileName).should.be.false + // When + var fn = function(){ jsiojs.showFile(fileName) } + // Then + expect(fn).to.throw(fileName+" does not exist") + }) + }) +}) function generateFileName(){ return tmpDir+Math.random()+".js"