Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
0.0.1 add initial util methods and tests
- Loading branch information
1 parent
f58f53e
commit 14b5bea
Showing
13 changed files
with
296 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
node_modules | ||
coverage | ||
.idea | ||
.DS_Store |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
{ | ||
"nonew" : true, | ||
"plusplus" : true, | ||
"curly" : true, | ||
"latedef" : "nofunc", | ||
"unused" : "strict", | ||
"noarg" : true, | ||
"indent" : 2, | ||
"forin" : true, | ||
"noempty" : true, | ||
"quotmark" : "single", | ||
"maxparams" : 5, | ||
"node" : true, | ||
"eqeqeq" : true, | ||
"strict" : true, | ||
"undef" : true, | ||
"bitwise" : true, | ||
"newcap" : true, | ||
"immed" : true, | ||
"browser" : true, | ||
"camelcase" : true, | ||
"nonbsp" : true, | ||
"globals" : { | ||
"after" : false, | ||
"afterEach" : false, | ||
"angular" : false, | ||
"before" : false, | ||
"beforeEach" : false, | ||
"browser" : false, | ||
"describe" : false, | ||
"expect" : false, | ||
"inject" : false, | ||
"it" : false, | ||
"jasmine" : false, | ||
"spyOn" : false, | ||
"$" : false, | ||
"_" : false | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
language: node_js | ||
node_js: | ||
- "0.12" | ||
after_script: | ||
- "./node_modules/coveralls/bin/coveralls.js < ./coverage/lcov.info" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,79 @@ | ||
# alien-node-q-utils | ||
Helper functions for Q on NodeJS | ||
Helper functions for promises with Q on NodeJS. The functions are pure and curried with Ramda. | ||
|
||
[![Build Status](https://travis-ci.org/AlienCreations/alien-node-q-utils.svg?branch=master)](https://travis-ci.org/AlienCreations/alien-node-q-utils) [![Coverage Status](https://coveralls.io/repos/AlienCreations/alien-node-q-utils/badge.svg?branch=master&service=github)](https://coveralls.io/github/AlienCreations/alien-node-q-utils?branch=master) [![npm version](http://img.shields.io/npm/v/alien-node-q-utils.svg)](https://npmjs.org/package/alien-node-q-utils) [![Dependency Status](https://david-dm.org/AlienCreations/alien-node-q-utils.svg)](https://david-dm.org/AlienCreations/alien-node-q-utils) | ||
|
||
## Install | ||
|
||
``` | ||
$ npm install alien-node-q-utils --save | ||
``` | ||
|
||
Run the specs | ||
|
||
``` | ||
$ npm test | ||
``` | ||
## Methods | ||
#### rejectedPromise | ||
A pre-rejected promise that throws the rejection into an expected `catch` block. | ||
|
||
```js | ||
it('should pre-reject a promise', function(done) { | ||
rejectedPromise('foo') | ||
.catch(function(err) { | ||
expect(err).toBe('foo'); | ||
done(); | ||
}) | ||
}); | ||
``` | ||
|
||
#### resolvedPromise | ||
A pre-resolved promise that passes the resolution into the expected `then` block. | ||
|
||
```js | ||
it('should pre-resolve a promise', function(done) { | ||
resolvedPromise('foo') | ||
.then(function(data) { | ||
expect(data).toBe('foo'); | ||
done(); | ||
}) | ||
}); | ||
``` | ||
|
||
#### rejectOnErrorOrResolve | ||
Given a function signature of `fn(deferred, err, data)` this will reject `deferred` if `err` is provided, | ||
otherwise resolve `deferred` with `data`. | ||
|
||
```js | ||
|
||
var mockPromiseNoError = function(resolveWith) { | ||
var deferred = Q.defer(); | ||
rejectOnErrorOrResolve(deferred, undefined, resolveWith); | ||
return deferred.promise; | ||
}; | ||
|
||
var mockPromiseWithError = function(err) { | ||
var deferred = Q.defer(); | ||
rejectOnErrorOrResolve(deferred, err, undefined); | ||
return deferred.promise; | ||
}; | ||
|
||
it('should resolve if no error is provided', function(done) { | ||
var deferred = Q.defer(); | ||
mockPromiseNoError('foo') | ||
.then(function(data) { | ||
expect(data).toBe('foo'); | ||
done(); | ||
}); | ||
}); | ||
|
||
it('should reject if error is provided', function(done) { | ||
var deferred = Q.defer(); | ||
mockPromiseWithError('foo') | ||
.catch(function(err) { | ||
expect(err).toBe('foo'); | ||
done(); | ||
}); | ||
}); | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
'use strict'; | ||
|
||
module.exports = { | ||
rejectOnErrorOrResolve : require('./methods/rejectOnErrorOrResolve'), | ||
rejectedPromise : require('./methods/rejectedPromise'), | ||
resolvedPromise : require('./methods/resolvedPromise') | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
'use strict'; | ||
|
||
var R = require('ramda'); | ||
|
||
/** | ||
* Reject a promise with an error if provided [err], else resolve with provided data [resolveWith] | ||
* @param {Object} deferred | ||
* @param {Object} err | ||
* @param {*} resolveWith | ||
* @returns {void} | ||
*/ | ||
var rejectOnErrorOrResolve = R.curry(function(deferred, err, resolveWith) { | ||
if (err) { | ||
deferred.reject(err); | ||
} else { | ||
deferred.resolve(resolveWith); | ||
} | ||
}); | ||
|
||
module.exports = rejectOnErrorOrResolve; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
'use strict'; | ||
|
||
var Q = require('q'); | ||
|
||
/** | ||
* Returns a promise that is pre-rejected with provided rejection pass-through. | ||
* @param rejection | ||
* @returns {Q.promise} | ||
*/ | ||
function rejectedPromise(rejection) { | ||
var deferred = Q.defer(); | ||
deferred.reject(rejection); | ||
return deferred.promise; | ||
} | ||
|
||
module.exports = rejectedPromise; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
'use strict'; | ||
|
||
var Q = require('q'); | ||
|
||
/** | ||
* Returns a promise that is pre-resolved with provided resolution pass-through. | ||
* @param resolution | ||
* @returns {Q.promise} | ||
*/ | ||
function resolvedPromise(resolution) { | ||
var deferred = Q.defer(); | ||
deferred.resolve(resolution); | ||
return deferred.promise; | ||
} | ||
|
||
module.exports = resolvedPromise; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
{ | ||
"name" : "alien-node-q-utils", | ||
"version" : "0.0.1", | ||
"description" : "Helper functions for promises with Q on NodeJS", | ||
"main" : "lib/Promises.js", | ||
"dependencies" : { | ||
"ramda" : "^0.17.x", | ||
"q" : "^1.4.x" | ||
}, | ||
"devDependencies" : { | ||
"coveralls" : "^2.11.2", | ||
"istanbul" : "^0.3.13", | ||
"jasmine" : "^2.3.1" | ||
}, | ||
"scripts" : { | ||
"test" : "./node_modules/.bin/istanbul cover ./node_modules/.bin/jasmine" | ||
}, | ||
"repository" : { | ||
"type" : "git", | ||
"url" : "https://github.com/aliencreations/alien-node-q-utils.git" | ||
}, | ||
"keywords" : [ | ||
"aliencreations", | ||
"q", | ||
"promise", | ||
"promises", | ||
"util", | ||
"node", | ||
"ramda" | ||
], | ||
"author" : "Sean Cannon", | ||
"license" : "MIT", | ||
"bugs" : { | ||
"url" : "https://github.com/aliencreations/alien-node-q-utils/issues" | ||
}, | ||
"homepage" : "https://github.com/aliencreations/alien-node-q-utils" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
'use strict'; | ||
|
||
var R = require('ramda'), | ||
Q = require('q'); | ||
|
||
var rejectOnErrorOrResolve = require('../lib/methods/rejectOnErrorOrResolve'); | ||
|
||
var mockPromiseNoError = function(resolveWith) { | ||
var deferred = Q.defer(); | ||
rejectOnErrorOrResolve(deferred, undefined, resolveWith); | ||
return deferred.promise; | ||
}; | ||
|
||
var mockPromiseWithError = function(err) { | ||
var deferred = Q.defer(); | ||
rejectOnErrorOrResolve(deferred, err, undefined); | ||
return deferred.promise; | ||
}; | ||
|
||
var FAKE_RESOLVE_WITH = 'Success!', | ||
FAKE_ERR = { code : 6000, message : 'Failed!' }; | ||
|
||
describe('rejectOnErrorOrResolve', function() { | ||
|
||
it('should resolve a promise where no error is provided', function(done) { | ||
mockPromiseNoError(FAKE_RESOLVE_WITH).then(function(result) { | ||
expect(result).toBe(FAKE_RESOLVE_WITH); | ||
done(); | ||
}); | ||
}); | ||
|
||
it('should reject a promise where an error is provided', function(done) { | ||
mockPromiseWithError(FAKE_ERR).catch(function(err) { | ||
expect(err).toBe(FAKE_ERR); | ||
done(); | ||
}) | ||
}); | ||
|
||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
'use strict'; | ||
|
||
var rejectedPromise = require('../lib/methods/rejectedPromise'); | ||
|
||
describe('rejectedPromise', function() { | ||
it('should pre-reject a promise', function(done) { | ||
rejectedPromise('foo') | ||
.catch(function(err) { | ||
expect(err).toBe('foo'); | ||
done(); | ||
}) | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
'use strict'; | ||
|
||
var resolvedPromise = require('../lib/methods/resolvedPromise'); | ||
|
||
describe('resolvedPromise', function() { | ||
it('should pre-resolve a promise', function(done) { | ||
resolvedPromise('foo') | ||
.then(function(data) { | ||
expect(data).toBe('foo'); | ||
done(); | ||
}) | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"spec_dir": "spec", | ||
"spec_files": [ | ||
"**/*[sS]pec.js" | ||
], | ||
"helpers": [ | ||
"helpers/**/*.js" | ||
] | ||
} |