From a18540f397ff598e623c507e517493373efb2b6a Mon Sep 17 00:00:00 2001 From: Matthew Ringel Date: Tue, 27 Oct 2015 09:58:52 -0700 Subject: [PATCH 1/4] command line util done --- .gitignore | 1 + matthew_ringel/greetcl.js | 6 ++++++ matthew_ringel/lib/greet.js | 7 +++++++ matthew_ringel/test/greet_test.js | 12 ++++++++++++ 4 files changed, 26 insertions(+) create mode 100644 matthew_ringel/greetcl.js create mode 100644 matthew_ringel/lib/greet.js create mode 100644 matthew_ringel/test/greet_test.js diff --git a/.gitignore b/.gitignore index ab646e2..7ddf381 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ **/*.sw? +**/node_modules diff --git a/matthew_ringel/greetcl.js b/matthew_ringel/greetcl.js new file mode 100644 index 0000000..aa4147a --- /dev/null +++ b/matthew_ringel/greetcl.js @@ -0,0 +1,6 @@ +'use strict'; + +var Greet = require('./lib/greet'); +var greet = new Greet(); + +console.log(greet.greet(process.argv[2])); diff --git a/matthew_ringel/lib/greet.js b/matthew_ringel/lib/greet.js new file mode 100644 index 0000000..c40cc36 --- /dev/null +++ b/matthew_ringel/lib/greet.js @@ -0,0 +1,7 @@ +'use strict'; + +var Greeting = exports = module.exports = function() { + this.greet = function(name) { + return 'hello ' + name; + }; +}; diff --git a/matthew_ringel/test/greet_test.js b/matthew_ringel/test/greet_test.js new file mode 100644 index 0000000..81c711e --- /dev/null +++ b/matthew_ringel/test/greet_test.js @@ -0,0 +1,12 @@ +'use strict'; + +var expect = require('chai').expect; + +var greetConstructor = require(__dirname + '/../lib/greet'); +var greetModule = new greetConstructor(); + +describe('the greet function', function testGreet() { + it('should return hello NAME', function greetExpect() { + expect(greetModule.greet('NAME')).to.eql('hello NAME'); + }); +}); From c8b538f85d1fa45c94d4511e4849b7b2df1d90a2 Mon Sep 17 00:00:00 2001 From: Matthew Ringel Date: Tue, 27 Oct 2015 11:38:01 -0700 Subject: [PATCH 2/4] added readme and partially complete bonus test --- matthew_ringel/README.md | 15 +++++++++++++++ matthew_ringel/lib/arg_parse.js | 12 ++++++++++++ matthew_ringel/test/parse_test.js | 14 ++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 matthew_ringel/README.md create mode 100644 matthew_ringel/lib/arg_parse.js create mode 100644 matthew_ringel/test/parse_test.js diff --git a/matthew_ringel/README.md b/matthew_ringel/README.md new file mode 100644 index 0000000..54db70b --- /dev/null +++ b/matthew_ringel/README.md @@ -0,0 +1,15 @@ +#Simple Test and Modular Pattern Homework Submission# +##Matthew Ringel## +##27 October 2015## + +greet.js is a module that returns an object with a method called greet which takes one argument, expected as a string. Calling the method will output 'hello NAME' where NAME is the string passed as an argument. + +greetcl.js is the command line utility. Usage is + +'''node greetcl.js [name]''' + +where [name] is a string. + + +The test for the part bonus isn't working. The argument parser is set up to throw a TypeError is the given argument is not a string. I tried to set up a test to test for the error using expect(fn).to.throw(TypeError) +but it didn't work. diff --git a/matthew_ringel/lib/arg_parse.js b/matthew_ringel/lib/arg_parse.js new file mode 100644 index 0000000..d41e044 --- /dev/null +++ b/matthew_ringel/lib/arg_parse.js @@ -0,0 +1,12 @@ +'use strict'; + +exports = module.exports = {}; + +exports.parse = function(arg) { + if (typeof arg != 'string') { + throw new TypeError('argument is not a string!'); + } + else { + return arg + } +}; diff --git a/matthew_ringel/test/parse_test.js b/matthew_ringel/test/parse_test.js new file mode 100644 index 0000000..08d5a20 --- /dev/null +++ b/matthew_ringel/test/parse_test.js @@ -0,0 +1,14 @@ +'use strict'; + +var expect = require('chai').expect; + +var arg_parse = require('../lib/arg_parse.js'); + +describe('the parse function', function testParse() { + it('should return a string', function stringExpect() { + expect(arg_parse.parse('NAME')).to.eql('NAME'); + }); + it('should throw an error', function errorExpect() { + expect(arg_parse.parse(0)).to.throw(TypeError); + }); +}); From d8b8eddb8145900778dd8bb7bad2e1d986682fce Mon Sep 17 00:00:00 2001 From: Matthew Ringel Date: Tue, 27 Oct 2015 11:38:32 -0700 Subject: [PATCH 3/4] fixed greetcl.js --- matthew_ringel/greetcl.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/matthew_ringel/greetcl.js b/matthew_ringel/greetcl.js index aa4147a..5a10142 100644 --- a/matthew_ringel/greetcl.js +++ b/matthew_ringel/greetcl.js @@ -3,4 +3,7 @@ var Greet = require('./lib/greet'); var greet = new Greet(); -console.log(greet.greet(process.argv[2])); +var arg_parse = require('./lib/arg_parse.js'); +var nameString = arg_parse.parse(process.argv[2]); + +console.log(greet.greet(nameString)); From 5d3f6678737113138896fbc45b4d90df872a5e9e Mon Sep 17 00:00:00 2001 From: Matthew Ringel Date: Thu, 29 Oct 2015 09:30:50 -0700 Subject: [PATCH 4/4] bonus 2 in progress --- matthew_ringel/lib/arg_parse.js | 4 +++- matthew_ringel/test/parse_test.js | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/matthew_ringel/lib/arg_parse.js b/matthew_ringel/lib/arg_parse.js index d41e044..c2f46ea 100644 --- a/matthew_ringel/lib/arg_parse.js +++ b/matthew_ringel/lib/arg_parse.js @@ -4,7 +4,9 @@ exports = module.exports = {}; exports.parse = function(arg) { if (typeof arg != 'string') { - throw new TypeError('argument is not a string!'); + // throw "argument is not a string!"; + throw new TypeError('string!'); + // return arg.toString(); } else { return arg diff --git a/matthew_ringel/test/parse_test.js b/matthew_ringel/test/parse_test.js index 08d5a20..9ef177c 100644 --- a/matthew_ringel/test/parse_test.js +++ b/matthew_ringel/test/parse_test.js @@ -1,6 +1,8 @@ 'use strict'; -var expect = require('chai').expect; +var chai = require('chai'); +var expect = chai.expect; +var assert = chai.assert; var arg_parse = require('../lib/arg_parse.js'); @@ -9,6 +11,7 @@ describe('the parse function', function testParse() { expect(arg_parse.parse('NAME')).to.eql('NAME'); }); it('should throw an error', function errorExpect() { - expect(arg_parse.parse(0)).to.throw(TypeError); + // expect(arg_parse.parse(0)).to.throw(TypeError); + assert.throws(arg_parse.parse(0), TypeError, 'string!') }); });