diff options
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js')
-rw-r--r-- | vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js new file mode 100644 index 00000000..b4166816 --- /dev/null +++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/kew/test/context.js @@ -0,0 +1,89 @@ +var Q = require('../kew') + +// test that contexts are propogated based on position +exports.testContextWithDelay = function (test) { + + Q.resolve(true) + .setContext({id: 1}) + .then(function (val, context) { + test.equal(context.id, 1, 'Should return the first context') + return Q.delay(500) + }) + .setContext({id: 2}) + .then(function (val, context) { + test.equal(context.id, 2, 'Should return the second context') + return Q.delay(500) + }) + .clearContext() + .then(function (val, context) { + test.equal(typeof context, 'undefined', 'Should return an undefined context') + return Q.delay(500) + }) + .setContext({id: 3}) + .fin(test.done) +} + +// test adding and removing contexts +exports.testGeneralContextFlow = function (test) { + Q.resolve(true) + // test no context exists + .then(function (val, context) { + test.equal(typeof context, 'undefined', 'Context should be undefined') + throw new Error() + }) + .fail(function (e, context) { + test.equal(typeof context, 'undefined', 'Context should be undefined') + }) + + // set the context and mutate it + .setContext({counter: 1}) + .then(function (val, context) { + test.equal(context.counter, 1, 'Counter should be 1') + context.counter++ + }) + .then(function (val, context) { + test.equal(context.counter, 2, 'Counter should be 2') + context.counter++ + throw new Error() + }) + .fail(function (e, context) { + test.equal(context.counter, 3, 'Counter should be 3') + }) + + // return a context + .then(function (val, context) { + return Q.resolve(false) + .setContext({counter: 0}) + }) + .then(function (val, context) { + test.equal(context.counter, 0, 'Counter should be 0') + throw new Error() + }) + .fail(function (e, context) { + test.equal(context.counter, 0, 'Counter should be 0') + }) + + // returning a promise with a cleared context won't clear the parent context + .then(function (val, context) { + return Q.resolve(false).clearContext() + }) + .then(function (val, context) { + test.equal(context.counter, 0, 'Counter should be 0') + throw new Error() + }) + .fail(function (e, context) { + test.equal(context.counter, 0, 'Counter should be 0') + }) + + // test that clearing the context works + .clearContext() + .then(function (val, context) { + test.equal(typeof context, 'undefined', 'Context should be undefined') + throw new Error() + }) + .fail(function (e, context) { + test.equal(typeof context, 'undefined', 'Context should be undefined') + }) + + .fin(test.done) +}
\ No newline at end of file |