Codebase list node-slide / cd0c3e6
Import upstream version 1.1.6+git20160623.1.77a5b62 Debian Janitor 1 year, 5 months ago
3 changed file(s) with 98 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
0 language: node_js
1 sudo: false
2 before_install:
3 - "npm -g install npm"
4 node_js:
5 - "4"
6 - "6"
7 - "0.10"
8 - "5"
9 - "0.12"
77 "description": "A flow control lib small enough to fit on in a slide presentation. Derived live at Oak.JS",
88 "main": "./lib/slide.js",
99 "dependencies": {},
10 "devDependencies": {},
10 "devDependencies": {
11 "tap": "^5.7.2"
12 },
1113 "engines": {
1214 "node": "*"
1315 },
16 "scripts": {
17 "test": "tap test/*.js"
18 },
1419 "repository": {
1520 "type": "git",
16 "url": "git://github.com/isaacs/slide-flow-control.git"
21 "url": "https://github.com/npm/slide-flow-control.git"
1722 },
1823 "license": "ISC"
1924 }
0 var test = require('tap').test
1 var chain = require('../').chain
2
3 test('works in simple case', function (t) {
4 var state = undefined
5 var subject = {
6 one: function (arg, cb) {
7 t.equal(arg, 'oneArg')
8 state = 'oneCall'
9 setTimeout(function () {
10 cb(null, { state: state, result: 'oneResult' })
11 }, 100)
12 },
13 two: function (arg, cb) {
14 t.equal(arg, 'twoArg')
15 state = 'twoCall'
16 setTimeout(function () {
17 cb(null, { state: state, result: 'twoResult' })
18 }, 100)
19 }
20 }
21
22 chain([
23 [subject, subject.one, 'oneArg'],
24 [subject, subject.two, 'twoArg']
25 ], function (err, results) {
26 t.same(results, [
27 { state: 'oneCall', result: 'oneResult' },
28 { state: 'twoCall', result: 'twoResult' }
29 ])
30 t.end()
31 })
32 })
33
34 test('skips rest of functions if error occur', function (t) {
35 var state = undefined
36 var subject = {
37 one: function (arg, cb) {
38 t.equal(arg, 'oneArg')
39 state = 'oneCall'
40 setTimeout(function () {
41 cb({ state: state, error: 'oneError' })
42 }, 100)
43 },
44 two: function (arg, cb) {
45 throw new Error('should be never called')
46 }
47 }
48
49 chain([
50 [subject, subject.one, 'oneArg'],
51 [subject, subject.two, 'twoArg']
52 ], function (err, results) {
53 t.same(err, { state: 'oneCall', error: 'oneError' })
54 t.end()
55 })
56 })
57
58 test('skips rest of functions if error occur', function (t) {
59 var state = undefined
60 var subject = {
61 one: function (arg, cb) {
62 t.equal(arg, 'oneArg')
63 state = 'oneCall'
64 setTimeout(function () {
65 cb({ state: state, error: 'oneError' })
66 }, 100)
67 },
68 two: function (arg, cb) {
69 throw new Error('should be never called')
70 }
71 }
72
73 chain([
74 [subject, subject.one, 'oneArg'],
75 [subject, subject.two, 'twoArg']
76 ], function (err, results) {
77 t.same(err, { state: 'oneCall', error: 'oneError' })
78 t.end()
79 })
80 })