From 0de045d1319c0fe3e20b2f3fa9df5e7c5ec62a8c Mon Sep 17 00:00:00 2001 From: Allan Liebold Date: Wed, 19 Jul 2017 12:17:34 -0700 Subject: [PATCH 1/6] sets up .gitignore, .eslintrc, and .eslintignore files --- lab-allan/.eslintignore | 5 + lab-allan/.eslintrc | 33 +++++ lab-allan/.gitignore | 136 +++++++++++++++++++ lab-allan/package-lock.json | 261 ++++++++++++++++++++++++++++++++++++ lab-allan/package.json | 16 +++ 5 files changed, 451 insertions(+) create mode 100644 lab-allan/.eslintignore create mode 100644 lab-allan/.eslintrc create mode 100644 lab-allan/.gitignore create mode 100644 lab-allan/package-lock.json create mode 100644 lab-allan/package.json diff --git a/lab-allan/.eslintignore b/lab-allan/.eslintignore new file mode 100644 index 0000000..05b1cf3 --- /dev/null +++ b/lab-allan/.eslintignore @@ -0,0 +1,5 @@ +**/node_modules/* +**/vendor/* +**/*.min.js +**/coverage/* +**/build/* diff --git a/lab-allan/.eslintrc b/lab-allan/.eslintrc new file mode 100644 index 0000000..881053e --- /dev/null +++ b/lab-allan/.eslintrc @@ -0,0 +1,33 @@ +{ +"rules": { +"no-console": "off", +"indent": [ +"error", +2 +], +"quotes": [ +"error", +"single" +], +"semi": [ +"error", +"always" +], +"linebreak-style": [ +"error", +"unix" +] +}, +"env": { +"es6": true, +"node": true, +"mocha": true, +"jasmine": true +}, +"ecmaFeatures": { +"modules": true, +"experimentalObjectRestSpread": true, +"impliedStrict": true +}, +"extends": "eslint:recommended" +} diff --git a/lab-allan/.gitignore b/lab-allan/.gitignore new file mode 100644 index 0000000..345130c --- /dev/null +++ b/lab-allan/.gitignore @@ -0,0 +1,136 @@ +# Created by https://www.gitignore.io/api/osx,vim,node,macos,windows + +### macOS ### +*.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + + +### OSX ### + +# Icon must end with two \r + +# Thumbnails + +# Files that might appear in the root of a volume + +# Directories potentially created on remote AFP share + +### Vim ### +# swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-v][a-z] +[._]sw[a-p] +# session +Session.vim +# temporary +.netrwhist +*~ +# auto-generated tag files +tags + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.gitignore.io/api/osx,vim,node,macos,windows diff --git a/lab-allan/package-lock.json b/lab-allan/package-lock.json new file mode 100644 index 0000000..d44a362 --- /dev/null +++ b/lab-allan/package-lock.json @@ -0,0 +1,261 @@ +{ + "name": "lab-allan", + "version": "1.0.0", + "lockfileVersion": 1, + "dependencies": { + "assertion-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", + "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true + }, + "browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", + "dev": true + }, + "chai": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.0.tgz", + "integrity": "sha1-MxoDkbVcOvh0CunDt0WLwcOAXm0=", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "debug": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz", + "integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=", + "dev": true + }, + "deep-eql": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-2.0.2.tgz", + "integrity": "sha1-sbrAblbwp2d3aG1Qyf63XC7XZ5o=", + "dev": true, + "dependencies": { + "type-detect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-3.0.0.tgz", + "integrity": "sha1-RtDMhVOrt7E6NSsNbeov1Y8tm1U=", + "dev": true + } + } + }, + "diff": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", + "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basecreate": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", + "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash.create": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", + "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true + }, + "mocha": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.4.2.tgz", + "integrity": "sha1-0O9NMyEm2/GNDWQMmzgt1IvpdZQ=", + "dev": true + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "supports-color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true + }, + "type-detect": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz", + "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/lab-allan/package.json b/lab-allan/package.json new file mode 100644 index 0000000..3e8294a --- /dev/null +++ b/lab-allan/package.json @@ -0,0 +1,16 @@ +{ + "name": "lab-allan", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "chai": "^4.1.0", + "mocha": "^3.4.2" + } +} From 6df909cdb2bacedfee9563f92fd095b5fcf6fbd9 Mon Sep 17 00:00:00 2001 From: Allan Liebold Date: Wed, 19 Jul 2017 14:18:06 -0700 Subject: [PATCH 2/6] reads txt files and returns first 8 bytes. Tests for errors and strings being returned. --- lab-allan/assets/one.txt | 1 + lab-allan/assets/three.txt | 1 + lab-allan/assets/two.txt | 1 + lab-allan/index.js | 16 ++++++++++++++ lab-allan/lib/file-reader.js | 10 +++++++++ lab-allan/package.json | 3 ++- lab-allan/test/file-reader-test.js | 35 ++++++++++++++++++++++++++++++ 7 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 lab-allan/assets/one.txt create mode 100644 lab-allan/assets/three.txt create mode 100644 lab-allan/assets/two.txt create mode 100644 lab-allan/index.js create mode 100644 lab-allan/lib/file-reader.js create mode 100644 lab-allan/test/file-reader-test.js diff --git a/lab-allan/assets/one.txt b/lab-allan/assets/one.txt new file mode 100644 index 0000000..03e81ae --- /dev/null +++ b/lab-allan/assets/one.txt @@ -0,0 +1 @@ +The first text file for the lab assignment diff --git a/lab-allan/assets/three.txt b/lab-allan/assets/three.txt new file mode 100644 index 0000000..0d5b6d7 --- /dev/null +++ b/lab-allan/assets/three.txt @@ -0,0 +1 @@ +Last one. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. diff --git a/lab-allan/assets/two.txt b/lab-allan/assets/two.txt new file mode 100644 index 0000000..3186632 --- /dev/null +++ b/lab-allan/assets/two.txt @@ -0,0 +1 @@ +Here's a bunch of text Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. diff --git a/lab-allan/index.js b/lab-allan/index.js new file mode 100644 index 0000000..22499de --- /dev/null +++ b/lab-allan/index.js @@ -0,0 +1,16 @@ +'use strict'; + +const fileReader = require(`${__dirname}/lib/file-reader.js`); + +fileReader(`${__dirname}/assets/one.txt`, function(err, asset) { + if(err) throw err; + console.log('one.txt:', asset); + fileReader(`${__dirname}/assets/two.txt`, function(err, asset) { + if(err) throw err; + console.log('two.txt:', asset); + fileReader(`${__dirname}/assets/three.txt`, function(err, asset) { + if(err) throw err; + console.log('three.txt:', asset); + }); + }); +}); diff --git a/lab-allan/lib/file-reader.js b/lab-allan/lib/file-reader.js new file mode 100644 index 0000000..bdbed05 --- /dev/null +++ b/lab-allan/lib/file-reader.js @@ -0,0 +1,10 @@ +'use strict'; + +const fs = require('fs'); + +const fileReader = module.exports = function(file, callback) { + fs.readFile(file, function(err, asset) { + if(err) return callback(err); + return callback(null, asset.toString('hex', 0, 8)); + }); +}; diff --git a/lab-allan/package.json b/lab-allan/package.json index 3e8294a..aca4f40 100644 --- a/lab-allan/package.json +++ b/lab-allan/package.json @@ -4,7 +4,8 @@ "description": "", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "mocha", + "lint": "eslint" }, "keywords": [], "author": "", diff --git a/lab-allan/test/file-reader-test.js b/lab-allan/test/file-reader-test.js new file mode 100644 index 0000000..fa7c1d9 --- /dev/null +++ b/lab-allan/test/file-reader-test.js @@ -0,0 +1,35 @@ +'use strict'; + +const expect = require('chai').expect; +const fileReader = require('../lib/file-reader.js'); + +describe('File Reader Module', function(){ + describe('with an improper file path', function() { + it('should return an error', function(done) { + fileReader(`${__dirname}/not-a-file.txt`, function(err) { + expect(err).to.be.an('error'); + done(); + }); + }); + }); + describe('with a proper file path', function() { + it('should return the content of the data', function(done) { + fileReader(`${__dirname}/../assets/one.txt`, function(err, asset) { + console.log('1'); + expect(err).to.equal(null); + expect(asset).to.be.a('string'); + fileReader(`${__dirname}/../assets/two.txt`, function(err, asset) { + console.log('2'); + expect(err).to.equal(null); + expect(asset).to.be.a('string'); + fileReader(`${__dirname}/../assets/three.txt`, function(err, asset) { + console.log('3'); + expect(err).to.equal(null); + expect(asset).to.be.a('string'); + done(); + }); + }); + }); + }); + }); +}); From ea065ca2e98247d726bcf4f0c7cda3264891afa7 Mon Sep 17 00:00:00 2001 From: Allan Liebold Date: Wed, 19 Jul 2017 14:22:29 -0700 Subject: [PATCH 3/6] removes console.logs and tests length of strings to make sure only the first 8 bytes are being returned --- lab-allan/test/file-reader-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lab-allan/test/file-reader-test.js b/lab-allan/test/file-reader-test.js index fa7c1d9..547f535 100644 --- a/lab-allan/test/file-reader-test.js +++ b/lab-allan/test/file-reader-test.js @@ -15,17 +15,17 @@ describe('File Reader Module', function(){ describe('with a proper file path', function() { it('should return the content of the data', function(done) { fileReader(`${__dirname}/../assets/one.txt`, function(err, asset) { - console.log('1'); expect(err).to.equal(null); expect(asset).to.be.a('string'); + expect(asset.length).to.equal(16); fileReader(`${__dirname}/../assets/two.txt`, function(err, asset) { - console.log('2'); expect(err).to.equal(null); expect(asset).to.be.a('string'); + expect(asset.length).to.equal(16); fileReader(`${__dirname}/../assets/three.txt`, function(err, asset) { - console.log('3'); expect(err).to.equal(null); expect(asset).to.be.a('string'); + expect(asset.length).to.equal(16); done(); }); }); From 4eefeda150c3963319b46ba515c08967b3296f2d Mon Sep 17 00:00:00 2001 From: Allan Liebold Date: Wed, 19 Jul 2017 14:35:54 -0700 Subject: [PATCH 4/6] refactored with lexical arrow functions --- lab-allan/lib/file-reader.js | 2 +- lab-allan/test/file-reader-test.js | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lab-allan/lib/file-reader.js b/lab-allan/lib/file-reader.js index bdbed05..4f62b78 100644 --- a/lab-allan/lib/file-reader.js +++ b/lab-allan/lib/file-reader.js @@ -3,7 +3,7 @@ const fs = require('fs'); const fileReader = module.exports = function(file, callback) { - fs.readFile(file, function(err, asset) { + fs.readFile(file, (err, asset) => { if(err) return callback(err); return callback(null, asset.toString('hex', 0, 8)); }); diff --git a/lab-allan/test/file-reader-test.js b/lab-allan/test/file-reader-test.js index 547f535..14dd107 100644 --- a/lab-allan/test/file-reader-test.js +++ b/lab-allan/test/file-reader-test.js @@ -4,25 +4,25 @@ const expect = require('chai').expect; const fileReader = require('../lib/file-reader.js'); describe('File Reader Module', function(){ - describe('with an improper file path', function() { - it('should return an error', function(done) { - fileReader(`${__dirname}/not-a-file.txt`, function(err) { + describe('with an improper file path', () => { + it('should return an error', (done) => { + fileReader(`${__dirname}/not-a-file.txt`, (err) => { expect(err).to.be.an('error'); done(); }); }); }); describe('with a proper file path', function() { - it('should return the content of the data', function(done) { - fileReader(`${__dirname}/../assets/one.txt`, function(err, asset) { + it('should return the content of the data', (done) => { + fileReader(`${__dirname}/../assets/one.txt`, (err, asset) => { expect(err).to.equal(null); expect(asset).to.be.a('string'); expect(asset.length).to.equal(16); - fileReader(`${__dirname}/../assets/two.txt`, function(err, asset) { + fileReader(`${__dirname}/../assets/two.txt`, (err, asset) => { expect(err).to.equal(null); expect(asset).to.be.a('string'); expect(asset.length).to.equal(16); - fileReader(`${__dirname}/../assets/three.txt`, function(err, asset) { + fileReader(`${__dirname}/../assets/three.txt`, (err, asset) => { expect(err).to.equal(null); expect(asset).to.be.a('string'); expect(asset.length).to.equal(16); From a2fe164a5e90ee8c6d1ad78fa26da948091af7bd Mon Sep 17 00:00:00 2001 From: Allan Liebold Date: Wed, 19 Jul 2017 14:40:01 -0700 Subject: [PATCH 5/6] changes it string to describe the test more accurately --- lab-allan/test/file-reader-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lab-allan/test/file-reader-test.js b/lab-allan/test/file-reader-test.js index 14dd107..cbe83d1 100644 --- a/lab-allan/test/file-reader-test.js +++ b/lab-allan/test/file-reader-test.js @@ -13,7 +13,7 @@ describe('File Reader Module', function(){ }); }); describe('with a proper file path', function() { - it('should return the content of the data', (done) => { + it('should return the first 8 bytes from assets in order', (done) => { fileReader(`${__dirname}/../assets/one.txt`, (err, asset) => { expect(err).to.equal(null); expect(asset).to.be.a('string'); From 9a6be2ac85056ebf3aae8fc0a4b6b6d94dd0b307 Mon Sep 17 00:00:00 2001 From: Allan Liebold Date: Wed, 19 Jul 2017 14:51:46 -0700 Subject: [PATCH 6/6] adds README.md --- lab-allan/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 lab-allan/README.md diff --git a/lab-allan/README.md b/lab-allan/README.md new file mode 100644 index 0000000..19f9c0e --- /dev/null +++ b/lab-allan/README.md @@ -0,0 +1,9 @@ +### file-reader.js +- reads a specified text file and, if no errors are returned, uses buffer to return the first 8 bytes of the file's data as hex string. + +### index.js +- calls the fileReader method on each text document in the assets folder and logs the results. + +### file-reader-test.js +- tests that an improper file path returns an error +- tests that each of the text documents in the assets folder, when passed into the fileReader method, return a string of the correct length.