forked from creationix/step
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
58eac25
commit e4addca
Showing
8 changed files
with
148 additions
and
85 deletions.
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
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,26 @@ | ||
require('./helper'); | ||
|
||
var selfText = fs.readFileSync(__filename, 'utf8'); | ||
|
||
// This example tests passing async results and sync results to the next layer | ||
|
||
expect('one'); | ||
expect('two'); | ||
expect('three'); | ||
Step( | ||
function readSelf() { | ||
fulfill("one"); | ||
fs.readFile(__filename, 'utf8', this); | ||
}, | ||
function capitalize(err, text) { | ||
fulfill("two"); | ||
if (err) throw err; | ||
assert.equal(selfText, text, "Text Loaded"); | ||
return text.toUpperCase(); | ||
}, | ||
function showIt(err, newText) { | ||
fulfill("three"); | ||
if (err) throw err; | ||
assert.equal(selfText.toUpperCase(), newText, "Text Uppercased"); | ||
} | ||
); |
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,25 @@ | ||
require('./helper'); | ||
|
||
var exception = new Error('Catch me!'); | ||
|
||
expect('one'); | ||
expect('two'); | ||
expect('three'); | ||
Step( | ||
function () { | ||
fulfill('one'); | ||
var callback = this; | ||
setTimeout(function () { | ||
callback(exception); | ||
}); | ||
}, | ||
function (err) { | ||
fulfill('two'); | ||
assert.equal(exception, err, "error should passed through"); | ||
throw exception; | ||
}, | ||
function (err) { | ||
fulfill('three'); | ||
assert.equal(exception, err, "error should be caught"); | ||
} | ||
); |
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,21 @@ | ||
require('./helper'); | ||
|
||
|
||
var myfn = Step.fn( | ||
function (name) { | ||
fs.readFile(name, 'utf8', this); | ||
}, | ||
function capitalize(err, text) { | ||
if (err) throw err; | ||
return text.toUpperCase(); | ||
} | ||
); | ||
|
||
var selfText = fs.readFileSync(__filename, 'utf8'); | ||
|
||
expect('result'); | ||
myfn(__filename, function (err, result) { | ||
fulfill('result'); | ||
if (err) throw err; | ||
assert.equal(selfText.toUpperCase(), result, "It should work"); | ||
}); |
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,33 @@ | ||
require('./helper'); | ||
|
||
var dirListing = fs.readdirSync(__dirname), | ||
dirResults = dirListing.map(function (filename) { | ||
return fs.readFileSync(__dirname + "/" + filename, 'utf8'); | ||
}); | ||
|
||
expect('one'); | ||
expect('two'); | ||
expect('three'); | ||
Step( | ||
function readDir() { | ||
fulfill('one'); | ||
fs.readdir(__dirname, this); | ||
}, | ||
function readFiles(err, results) { | ||
fulfill('two'); | ||
if (err) throw err; | ||
// Create a new group | ||
assert.deepEqual(dirListing, results); | ||
var group = this.group(); | ||
results.forEach(function (filename) { | ||
if (/\.js$/.test(filename)) { | ||
fs.readFile(__dirname + "/" + filename, 'utf8', group()); | ||
} | ||
}); | ||
}, | ||
function showAll(err , files) { | ||
fulfill('three'); | ||
if (err) throw err; | ||
assert.deepEqual(dirResults, files); | ||
} | ||
); |
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,17 @@ | ||
global.assert = require('assert'); | ||
global.fs = require('fs'); | ||
global.Step = require('../lib/step'); | ||
|
||
// A mini expectations module to ensure expected callback fire at all. | ||
var expectations = {}; | ||
global.expect = function expect(message) { | ||
expectations[message] = new Error("Missing expectation: " + message); | ||
} | ||
global.fulfill = function fulfill(message) { | ||
delete expectations[message]; | ||
} | ||
process.addListener('exit', function () { | ||
Object.keys(expectations).forEach(function (message) { | ||
throw expectations[message]; | ||
}); | ||
}); |
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,22 @@ | ||
require('./helper'); | ||
|
||
var selfText = fs.readFileSync(__filename, 'utf8'), | ||
etcText = fs.readFileSync('/etc/passwd', 'utf8'); | ||
|
||
expect('one'); | ||
expect('two'); | ||
Step( | ||
// Loads two files in parallel | ||
function loadStuff() { | ||
fulfill('one'); | ||
fs.readFile(__filename, this.parallel()); | ||
fs.readFile("/etc/passwd", this.parallel()); | ||
}, | ||
// Show the result when done | ||
function showStuff(err, code, users) { | ||
fulfill('two'); | ||
if (err) throw err; | ||
assert.equal(selfText, code, "Code should come first"); | ||
assert.equal(etcText, users, "Users should come second"); | ||
} | ||
); |