diff --git a/.gitignore b/.gitignore index ab646e2..3ca15f3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ **/*.sw? + +node_modules + diff --git a/isabella_organ/bin/greet.js b/isabella_organ/bin/greet.js new file mode 100755 index 0000000..ac2878f --- /dev/null +++ b/isabella_organ/bin/greet.js @@ -0,0 +1,9 @@ +#!/usr/bin/env node + +var greet = require(__dirname + '/../lib/greet.js'); +var bin = exports = module.exports = function() { + console.log(greet(process.argv[2] || 'anonymous')); + return greet(process.argv[2] || 'anonymous'); +}; +debugger; +bin(); diff --git a/isabella_organ/gulpfile.js b/isabella_organ/gulpfile.js new file mode 100644 index 0000000..776ad3e --- /dev/null +++ b/isabella_organ/gulpfile.js @@ -0,0 +1,29 @@ +var gulp = require('gulp'); +var jshint = require('gulp-jshint'); +var appFiles = ['index.js', './lib/**/*.js', 'bin/**/*.js']; +var testFiles = ['./test/**/*.js']; + +gulp.task('jshint:test', function() { + return gulp.src(testFiles) + .pipe(jshint({ + node: true, + globals: { + describe: true, + it: true, + before: true, + after: true + } + })) + .pipe(jshint.reporter('default')); +}); + +gulp.task('jshint:app', function() { + return gulp.src(appFiles) + .pipe(jshint({ + node: true + })) + .pipe(jshint.reporter('default')); +}); + +gulp.task('jshint', ['jshint:test', 'jshint:app']); +gulp.task('default', ['jshint']); diff --git a/isabella_organ/index.js b/isabella_organ/index.js new file mode 100644 index 0000000..955bf70 --- /dev/null +++ b/isabella_organ/index.js @@ -0,0 +1 @@ +module.exports = require(__dirname + '/lib/greet'); diff --git a/isabella_organ/lib/greet.js b/isabella_organ/lib/greet.js new file mode 100644 index 0000000..6310660 --- /dev/null +++ b/isabella_organ/lib/greet.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function(name) { + return 'hello ' + name; +}; diff --git a/isabella_organ/lib/greet_2.js b/isabella_organ/lib/greet_2.js new file mode 100644 index 0000000..afc2718 --- /dev/null +++ b/isabella_organ/lib/greet_2.js @@ -0,0 +1,5 @@ +'use strict'; + +exports.greet = function(name) { + return 'hello ' + name; +}; \ No newline at end of file diff --git a/isabella_organ/lib/greet_3.js b/isabella_organ/lib/greet_3.js new file mode 100644 index 0000000..0d86bde --- /dev/null +++ b/isabella_organ/lib/greet_3.js @@ -0,0 +1,10 @@ +'use strict'; + +//use constructor +var Greet = exports = module.exports = function() { + this.greeting = 'hello world'; +}; + +Greet.prototype.greet = function() { + return this.greeting; +}; diff --git a/isabella_organ/package.json b/isabella_organ/package.json new file mode 100644 index 0000000..e3ac92b --- /dev/null +++ b/isabella_organ/package.json @@ -0,0 +1,40 @@ +{ + "name": "isabella_organ", + "version": "1.0.0", + "description": "Simple Test and Modular Patterns", + "main": "index.js", + "directories": { + "test": "test" + }, + "devDependencies": { + "chai": "^3.4.0", + "gulp": "^3.9.0", + "gulp-jshint": "^1.11.2", + "gulp-mocha": "^2.1.3", + "mocha": "^2.3.3" + }, + "scripts": { + "test": "./node_modules/mocha/bin/mocha test", + "start": "echo 'hello world'", + "custom": "echo 'custom'" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/isabellaorgan/simple-test-and-modular-patterns.git" + }, + "keywords": [ + "test", + "mocha", + "chai", + "modules", + "node", + "json", + "gulp" + ], + "author": "isabellaorgan@gmail.com", + "license": "MIT", + "bugs": { + "url": "https://github.com/isabellaorgan/simple-test-and-modular-patterns/issues" + }, + "homepage": "https://github.com/isabellaorgan/simple-test-and-modular-patterns#readme" +} diff --git a/isabella_organ/test/greet_test.js b/isabella_organ/test/greet_test.js new file mode 100644 index 0000000..45247d7 --- /dev/null +++ b/isabella_organ/test/greet_test.js @@ -0,0 +1,36 @@ +var expect = require('chai').expect; +var greet = require(__dirname + '/../bin/greet.js'); + +describe('greet bin', function() { + before(function() { + this.backup = process.argv; + process.argv = {}; + }); + + after(function() { + process.argv = this.backup; + debugger; + }); + + it ('should greet anonymous', function() { + debugger; + expect(greet()).to.eql('hello anonymous'); + }); + + describe('with arguments', function() { + before(function() { + this.backup = process.argv; + process.argv = ['node', 'myfile', 'test name']; + }); + + after(function() { + process.argv = this.backup; + debugger; + }); + + it('should pull from process.argv', function() { + expect(greet()).to.eql('hello test name'); + }); + }); +}); +debugger;